我想在 ggplot 图中添加两个注释。当图形不包含facet_grid
,例如 时p1
,添加这样的annotate
层可以正常工作,即q1
。但是,当我facet_grid
向原始图形添加一个图层时,即p2
,然后添加相同的“注释”图层,即q2
导致错误报告:
错误:Aesthetics 必须为长度 1 或与数据相同 (4):标签
有什么建议吗?谢谢。
PS,我使用的包ggplot2的版本是2.2.1。
p1 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() p2 <- p1 + facet_grid(vs~.) q1 <- p1 + annotate("text", x = 2:3, y = 20:21, label = c("my label", "label 2")) q2 <- p2 + annotate("text", x = 2:3, y = 20:21, label = c("my label", "label 2"))
以下是我从包作者 Hadley Wickham 那里得到的答案:
https://github.com/tidyverse/ggplot2/issues/2221
不幸的是,很难annotate()
自动执行此操作。而是通过自己创建数据集来“手工”完成。
library(ggplot2)
df <- data.frame(wt = 2:3, mpg = 20:21, label = c("my label", "label 2"))
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
geom_text(aes(label = label), data = df) +
facet_grid(vs ~ .)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句