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