r - 向面板添加标签,包括 3 个图和一个图例

标签 r label

我想创建一个图形,其中有 3 个图(p1、p2、p3),标有“(A)”、“(B)”、“(C)”和一个没有标签的图例。但我的尝试没有成功。你介意帮我吗?感谢您的宝贵时间!

借助 get_legend 函数,我从一张图中提取了图例

get_legend<-function(myggplot){
  tmp <- ggplot_gtable(ggplot_build(myggplot))
  leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
  legend <- tmp$grobs[[leg]]
  return(legend)
}
legend <- get_legend(p1)# Save the legend
p1 <- p1 + theme(legend.position="none")#  Remove the legend from the box plot

这是我编写的用于获得最终数字的脚本,但是它不起作用:

grid.arrange(p3, p1, p2, legend, labels=c("(A)", "(B)", "(C)", " "), ncol=4, widths=c(2, 2, 2, 0.8))

下面的脚本可以工作,但不幸的是没有标记我的 3 个图:

grid.arrange(p3, p1, p2, legend, ncol=4, widths=c(2, 2, 2, 0.8))

3plots without labels and legend

有什么建议吗?非常感谢!

最佳答案

您可以尝试此代码(未经测试):

plots <- mapply(arrangeGrob, list(p3, p1, p2, legend), bottom=c("A", "B", "C", ""), SIMPLIFY=FALSE)

do.call(grid.arrange, plots)

关于r - 向面板添加标签,包括 3 个图和一个图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33908098/

相关文章:

arrays - 使用索引向量对数组进行子集化

r - 创建 2015 年所有日期的数据框

r - 编织为 pdf 时如何添加大引号或撇号来绘制文本?

wpf - 使用带有 WPF 标签的 System.Drawing.Font

html - 使用标签、href 和 css 的链接在 IE 中不起作用

R:ggplot2:使用密度叠加向直方图添加计数标签

r - knitr 中的自动 ggplot2 示例库

javascript - R Shiny : Getting information from Datatable with JS in shiny

asp.net-mvc-3 - 在MVC3中使用Html.LabelFor在表单标签中的 anchor 标记

java - 无法实现组件的特定布局