gpt4 book ai didi

r - 用不同颜色的线段绘制Y轴线

转载 作者:行者123 更新时间:2023-12-03 21:11:47 28 4
gpt4 key购买 nike

通常,您可以使用以下命令更改整个轴线的颜色:theme ( axis.line.y = element_line(color = "gray", size = 1) )但是,我想绘制一个 Y 轴,其中不同的部分具有不同的颜色。例如,低于 0 的蓝线和高于 0 的红色线。一个小例子,其中轴已被手动“绘制”:

df <- data.frame(x = 1:8, y = -3:4)

ggplot(df, aes(x, y)) +
geom_point()
enter image description here
非常感谢!
编辑:Allan Cameron 的答案是正确的,但对我不起作用,因为我有一个时间序列图,其中我的 x 轴采用时间格式 (POSIXct)。他的帖子让我了解了它是如何工作的,我觉得我已经用一些技巧让它工作了。这是我的做法,它可以适用于不同的情况/范围。需要包“lubridate”来添加/减去时间。
  • 获取我的 x 轴的最小值和最大值:
  • minX <- min(myData$Timestamp) maxX <- max(myData$Timestamp)
  • 设置限制:
  • lim <- as.POSIXct(c(minX -minutes (5), maxX), origin = "1970-01-01")
  • coord_cartesian 像这样:
  • + coord_cartesian(xlim=c(minX - minutes(5), maxX),c(60,100), expand = FALSE)
  • 画线:
  • + geom_segment(aes(x = minX - minutes(5), y = 60, xend = minX - minutes(5), yend = 70), size = 1, color = "red"请记住,这是针对我的用例。我可能需要对此进行调整(并更多地编辑这篇文章)

    最佳答案

    如果你想要两种颜色,你需要两条线。您不能有两条轴线,因此您需要将这些线绘制为线段,如下面的表示法所示:

    library(ggplot2)

    df <- data.frame(x = 0:10, y = 0:10)

    ggplot(df, aes(x, y)) +
    geom_point() +
    geom_segment(aes(x = 0, y = 0, xend = 0, yend = 2), size = 2, color = "red") +
    geom_segment(aes(x = 0, y = 2, xend = 0, yend = 10), size = 2, color = "blue") +
    scale_x_continuous(expand = c(0, 0)) +
    scale_y_continuous(expand = c(0, 0)) +
    theme(axis.line.y = element_blank(),
    axis.line.x = element_line())

    创建于 2020-08-07 由 reprex package (v0.3.0)

    关于r - 用不同颜色的线段绘制Y轴线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63304722/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com