通常您可以使用以下代码更改整个坐标轴线的颜色:
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()
非常感谢!
编辑: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"
请记住,这是我的用例。我可能需要进行调整(并更改此帖子)。