我正在尝试向 Y 轴上的水平线添加注释。在查看了类似的问题后,我创建了一些类似的东西,但并不完全是我想要的。具体来说,我希望将文本“高”放置在 Y 轴(图外)低于 6(在 Y 轴上)。这是我迄今为止尝试过的。
set.seed(57)
discharge <- data.frame(date = seq(as.Date("2011-01-01"), as.Date("2011-12-31"), by="days"),
discharge = rexp(365))
ggplot(discharge) +
geom_line(aes(x = date, y = discharge)) +
geom_hline(yintercept = 5.5, linetype= "dashed", color = "red") +
geom_text(aes(x = date[13], y = 5.5, label = "High"))
Run Code Online (Sandbox Code Playgroud)
任何建议,将不胜感激!
xil*_*iam 12
这是您想要的尝试,它使用annotate(而不是geom_text)和,类似于 Maurits Evers 在这里提供的答案:coord_cartesian在绘图区域之外添加文本。请注意,必须对其进行设置,并且 x 轴坐标是通过从日期输入中减去来手动设置的。clip = "off"xlim
ggplot(discharge) +
geom_line(aes(x = date, y = discharge)) +
geom_hline(yintercept = 5.5, linetype= "dashed", color = "red") +
annotate("text", x = discharge$date[13]-30, y = 5.5, label = "High")+
coord_cartesian(xlim = c(discharge$date[13], max(discharge$date)), clip = 'off')
Run Code Online (Sandbox Code Playgroud)
相应地设置中断和标签。尝试这个:
library(ggplot2)
set.seed(57)
discharge <- data.frame(date = seq(as.Date("2011-01-01"), as.Date("2011-12-31"), by="days"),
discharge = rexp(365))
ggplot(discharge) +
geom_line(aes(x = date, y = discharge)) +
geom_hline(yintercept = 5.5, linetype= "dashed", color = "red") +
scale_y_continuous(breaks = c(0, 2, 4, 5.5, 6),
labels = c(0, 2, 4, "High", 6))
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020 年 3 月 8 日创建