使用gridExtra::grid.arrange创建多个绘图后,使用grid.arrange添加标题。

4
我必须使用gridExtra::grid.arrange来绘制几个图形,因为我使用的软件包需要这样做才能创建图形拟合。我必须使用grid.arrange来为图形创建标题。现在我想将这两个功能结合起来,但无法想出如何操作。所以,我想要将几个图形并排绘制,并给它们各自不同的标题。
我有euler1和euler2两个拟合结果,代表我的欧拉图中的数据。对于将两个图形并排绘制,以下代码适用于我:
gridExtra::grid.arrange(plot(euler1),plot(euler2))

对于给单个图表加标题,这段代码适用:

plot1 <- plot(euler1)
grid.arrange(grobs = list(plot1), top = "Title 1")

现在,我想要将这两个代码组合起来。我该怎么做?

例如,我尝试了以下操作(但没有成功):

plot1 <- plot(euler1)
plot2 <- plot(euler2)
gridExtra::grid.arrange(plot1, plot2, grobs = list(plot1, plot2), top = list("Title 1","Title 2"))

亲切的问候, 朱迪思
2个回答

10

通常你会在图表本身上添加标题,就像这样:

->

一般来说,你会给图表本身添加标题,例如:

p1 = ggplot() + ggtitle('plot 1')
p2 = ggplot() + ggtitle('plot 2')

grid.arrange(grobs = list(p1, p2), top = "Global Title", ncol=2)

但是如果您更喜欢使用grid.arrange的top参数来设置标题,您可以将它们嵌套,

p = ggplot()
grid.arrange(arrangeGrob(p, top = 'title 1'), arrangeGrob(p, top = 'title 2'), top = "Global Title", ncol=2)

谢谢您的回复。不幸的是,我正在使用的软件包(eulerr)依赖于自己的定制绘图实现,而ggplot不是一个选项,因此我必须使用原始问题中所述的语法'plot'和'grid.arrange'与'top'和'gridExtra'。 - Judithhhhhh

1

我已经想出如何做到这一点,因为在 eulerr 包中,plot 中使用 main 已经被修复。现在我可以使用:

gridExtra::grid.arrange(plot(euler1, main = 'title1'),
plot(euler2, main = 'title2'))

感谢大家的反馈。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接