为使用facet_wrap(ggplot2)创建的每个子图添加标签

时间:2015-05-07 07:17:20

标签: r ggplot2 facet-wrap

我对ggplot2(和R)很新,所以请耐心等待。使用facet_wrap,我创建了一个多面板图。我想用字母标记它们(从标有(A)的左上方面板开始,然后用(b)标记下一个面板等等。)但我不知道该怎么做。我希望它位于绘图之外(理想情况下位于每个面板的左上角)。

我遇到了grid.textggtitle,但我不确定如何实现这些以获得理想的结果。

我遇到this post并且给定的答案似乎可以手动标记每个数字,但我希望标签按顺序自动完成。

我非常感谢任何建议/指南。

1 个答案:

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

enter image description here