ggplot2在y轴上注释(绘图区域外)

10

我试图在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"))

非常欢迎提出任何意见!

2个回答

12

以下是一种使用 annotate(而非 geom_text)以及 coord_cartesianclip = "off" 的方式来实现你所需的功能,类似于 Maurits Evers 在此提供的答案:Add text outside plot area。请注意,必须设置 xlim,并且 x 轴坐标需要手动从日期输入中减去。

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') 

chart


10

设置相应的断点和标签。尝试这样做:

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))

此内容由reprex package (v0.3.0)于2020年03月08日创建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接