将8个图表和一个图例排列在网格中。

3

我有8个图表和一个图例,我想将它们排列在一个3x3的网格中,使所有坐标轴对齐。

当我不将图例添加到网格中时,它可以完美地工作,但是一旦我添加了图例,我的图表就会被移动,不再对齐。

plot_grid(SiO2TiO2, SiO2Al2O3, SiO2FeO, SiO2MgO, SiO2CaO, SiO2Na2O, SiO2K2O, SiO2P2O5, align=c("hv"),nrow = 3, ncol = 3)

没有图例的3x3网格对齐的图表:
plot_grid(SiO2TiO2, SiO2Al2O3, SiO2FeO, SiO2MgO, SiO2CaO, SiO2Na2O, SiO2K2O, SiO2P2O5, legend, align=c("hv"),nrow = 3, ncol = 3)

警告信息: 1:在align_plots(plotlist=plots, align=align)中: 图形无法垂直对齐。将图形放置为未对齐。 2:在align_plots(plotlist=plots, align=align)中: 图形无法水平对齐。将图形放置为未对齐。
三行三列的图没有与图例对齐: 有人知道如何将图例与图对齐吗? 提前感谢!
1个回答

0
也许你需要在grid.arrange命令中定义绘图的宽度。
就像以下示例中所示:
plot_grid(SiO2TiO2, SiO2Al2O3, SiO2FeO, SiO2MgO, SiO2CaO, SiO2Na2O, SiO2K2O, SiO2P2O5, legend, align=c("hv"), nrow = 3, ncol = 3, widths=c(2.3, 2.3, 2.3))

嗨!当我尝试您的示例时,出现以下错误并且没有绘图:> ggplot_to_gtable(x)中的错误: 参数需要是“ggplot”或“gtable”类。 - Servus
嗨,valz!抱歉没有回复你,我没有收到新帖子的通知。我通过绘制9个图表而不是8个来解决了我的问题,并将图例放在这9个图表下面(即我创建了一个3x3图形网格,然后创建了另一个具有两行一列的网格,其中我的第一个图形是3x3网格,第二个图形是图例)。 - Servus

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