4

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

我遇到了grid.textand ggtitle,但我不确定如何实施这些以获得预期的结果。

我遇到了这篇文章,根据给定的答案,似乎可以手动标记每个数字,但我希望自动按顺序进行标记。

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

4

1 回答 1

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

在此处输入图像描述

于 2015-05-07T08:05:02.297 回答