R ggplot2-如何在底部放置打印标题

R ggplot2-如何在底部放置打印标题,r,ggplot2,R,Ggplot2,这是一个非常简单的问题,但似乎很难找到合适的答案。如何将绘图标题放置在底部。有了ggplot2的强大功能,应该有一些简单的方法来实现这一点 qplot(rnorm(100)) + ggtitle("My Title") 其他人已经提出了这个问题。但是,提供的答案需要大量的手动调整,而且往往是艰苦的。我不想手动调整主题()中的plot.title=element\u文本(vjust=-XX)。有更好的方法吗 我猜你想要类似的东西 我猜你想要类似的东西 为什么要将添加单个参数称为“需要大量手

这是一个非常简单的问题,但似乎很难找到合适的答案。如何将绘图标题放置在底部。有了ggplot2的强大功能,应该有一些简单的方法来实现这一点

qplot(rnorm(100)) + ggtitle("My Title")
其他人已经提出了这个问题。但是,提供的答案需要大量的手动调整,而且往往是艰苦的。我不想手动调整
主题()中的
plot.title=element\u文本(vjust=-XX)
。有更好的方法吗


我猜你想要类似的东西


我猜你想要类似的东西


为什么要将添加单个参数称为“需要大量手动调整和艰苦工作”?您在链接解决方案中遇到过任何不必要的行为吗?我正在绘制3个单独的绘图,然后使用
网格将它们组合在一起。排列
。因此,我在单个绘图中调整的任何位置在放置在一起后都不会保持不变,甚至在调整绘图大小以进行保存时,也不会将单个绘图标题放错位置。为什么将添加单个参数称为“需要大量手动调整和艰苦工作”?您在链接解决方案中遇到过任何不必要的行为吗?我正在绘制3个单独的绘图,然后使用
网格将它们组合在一起。排列
。因此,无论我在单独的绘图中调整什么位置,当它们放在一起时都不会保持不变,甚至当你调整绘图大小以进行保存时,也不会将单独的绘图标题放错位置。这正是我想要的。但是如何将我的3个ggplot对象放置在
grobTree
中呢?或者,将ggplot对象转换为grob对象?我使用基本grob进行说明,将它们替换为实际的绘图。我创建了
绘图
标题
图例的列表,并使用了
网格。如您所述排列
,但出现了以下错误:排列grob中的错误(…,as.table=as.table,clip=clip,main=main,:输入必须是grobs!升级到最新的R和gridExtra后,现在我遇到了以下错误:as.vector(x,mode)中的错误:无法强制将类型“closure”强制为类型“any”的向量,这正是我所要查找的。但是如何将我的3个ggplot对象放置在
树状目录中?或者,如何将ggplot对象转换为grob对象?我使用基本grob进行说明,将它们替换为实际的绘图。我创建了
绘图
标题
,以及
legend
并使用了
网格。arrange
如您所述,但出现了以下错误:arrangeGrob中出现错误(…,as.table=as.table,clip=clip,main=main,:输入必须是grobs!升级到最新的R和gridExtra后,现在我收到了以下错误:as.vector(x,mode)中出现错误:无法将类型“closure”强制为“any”类型的向量
plots <- lapply(1:3, function(ii) 
                        grobTree(rectGrob(gp=gpar(fill=ii,alpha=0.2)), 
                                 textGrob(paste0("plot", ii))))
titles <- lapply(1:3, function(ii) textGrob(paste0("title", ii)))
legend <- grobTree(rectGrob(gp=gpar(fill=4,alpha=0.2)), 
                                 textGrob("legend"))
line <- unit(1,"line")
null <- unit(1, "null")

layout <- matrix(c(1, 2, 7, 
                   1, 5, 7,
                   1, 3, 7,
                   4, 6, 7), ncol=3, byrow=TRUE)
grid.arrange(grobs = c(plots, titles, list(legend)), 
             layout_matrix = layout, 
             heights = unit.c(null, line, null, line))
plots <- replicate(3, qplot(1,1), simplify=FALSE)
wrap <- mapply(arrangeGrob,plots, 
               bottom = paste("title", seq_along(plots)), 
               SIMPLIFY=FALSE)
grid.arrange(grobs=wrap, nrow=1)