使用 grid.arrange 为使用 gridExtra::grid.arrange 制作的多个图添加标题

Jud*_*hhh 3 grid gridextra

我必须使用 gridExtra::grid.arrange 来绘制除彼此之外的多个图,因为我使用该包来创建图的拟合。我必须使用 grid.arrange 为绘图创建一个标题。现在我想将两者结合起来,但不知道如何结合。所以:我想绘制彼此之外的几个数字,并给它们一个不同的标题。

我有 euler1 和 euler2 适合 tat 代表我在欧拉图中的数据。为了绘制除海誓山盟之外的 2 个图,此代码对我有用:

gridExtra::grid.arrange(plot(euler1),plot(euler2))
Run Code Online (Sandbox Code Playgroud)

为了给一个情节一个标题,这个代码对我有用:

plot1 <- plot(euler1)
grid.arrange(grobs = list(plot1), top = "Title 1")
Run Code Online (Sandbox Code Playgroud)

现在,我想结合这两个代码。我该怎么做?

我尝试例如(但不起作用):

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

亲切的问候,朱迪思

小智 9

通常你会为情节本身添加标题,如

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

grid.arrange(grobs = list(p1, p2), top = "Global Title", ncol=2)
Run Code Online (Sandbox Code Playgroud)

但如果你更喜欢使用 grid.arrange 的top参数作为标题,你可以嵌套它们,

p = ggplot()
grid.arrange(arrangeGrob(p, top = 'title 1'), arrangeGrob(p, top = 'title 2'), top = "Global Title", ncol=2)
Run Code Online (Sandbox Code Playgroud)