我对ggplot2(和R)很新,所以请耐心等待。使用facet_wrap
,我创建了一个多面板图。我想用字母标记它们(从标有(A)的左上方面板开始,然后用(b)标记下一个面板等等。)但我不知道该怎么做。我希望它位于绘图之外(理想情况下位于每个面板的左上角)。
我遇到了grid.text
和ggtitle
,但我不确定如何实现这些以获得理想的结果。
我遇到this post并且给定的答案似乎可以手动标记每个数字,但我希望标签按顺序自动完成。
我非常感谢任何建议/指南。
答案 0 :(得分:4)
p <- qplot(displ, hwy, data = mpg) + facet_wrap(~ cyl) +
theme(panel.margin=unit(1,"line"))
library(gtable)
g <- ggplotGrob(p)
strips <- g$layout[grep("strip_t", g$layout$name), ]
titles <- lapply(paste0("(", letters[seq_len(nrow(strips))], ")"),
textGrob, x = 0, hjust = 0, vjust = 1)
g <- gtable_add_grob(g, grobs = titles,
t = strips$t, b = strips$b - 2,
l = strips$l, r = strips$r)
grid.newpage()
grid.draw(g)