ggplot2,排列多个图,所有图大小均相同,之间没有间隙

时间:2019-03-13 21:32:00

标签: r ggplot2

我想将多个地块排列成一个图形,在地块区域之间没有任何间隙,并且所有地块的大小都完全相同(请参见下图以获取我想要的图形的草图,其中包括6个单独的地块)。 / p>

desired figure, composed of 6 individual plots

我尝试了ggarrange(ggpubr)和plot_grid(cowplot)以及其他几个问题,但它们似乎都存在相同的问题-您可以对齐图以使其具有相同的大小,但不能将它们彼此靠近。

Cowplot软件包中的

ggdraw允许您精确指定绘图的位置,但是它们的大小都略有不同。

有办法克服吗?

基本上,我要使六个图形的绘图区域(显示数据的地方,轴和标签)相同,然后连续排列它们。到目前为止,我还没有找到执行此操作的方法。

所有6张图的x轴变量都相同,但y不同,并且在某些图上有多个系列,而在其他图上没有,因此我不能在ggplot2中使用facet选项。

请帮助!

编辑:对不起,更多信息-因为我的绘图具有不同的y变量,所以绘图边距和绘图面板的大小都略有不同。因此,这意味着当我尝试将它们全部添加在一起时,它们是不一致的。 Plots different sizes out of alignment。 cowplot中的plot_grid允许您指定位置和大小,但BUT的大小是整个图的大小,包括的面板和边距。由于存在Y轴标签,因此页边距的大小不同,使用plot_grid的参数调整它们的大小并不是那么简单。

1 个答案:

答案 0 :(得分:0)

因此,我根据此处的一些代码设法找到了答案:https://community.rstudio.com/t/how-do-i-control-the-size-of-the-panel-in-a-ggplot-so-they-are-consistent/14377/8

首先需要通过align_plots()函数传递图     cowplot(),以列出图表:

`multiplot <- align_plots(plotAA,plotBB,plotCC,plotDD,plotEE,plotFF, align = "hv")`    

然后,图形的面板将全部具有相同的大小,并且可以使用     ggdraw()draw_plot()如下:

`ggdraw() + draw_grob(multiplot[[1]], 0,0.565,.6,.4) +
  draw_grob(multiplot[[2]], 0.396,0.565,0.6,0.4) + 
  draw_grob(multiplot[[3]], 0, 0.285, 0.6,0.4) +
  draw_grob(multiplot[[4]], 0.396, 0.285, 0.6, 0.4) +
  draw_grob(multiplot[[5]], 0,0.004, 0.6, 0.4) +
  draw_grob(multiplot[[6]], 0.396,0.004,0.6,0.4)`

给出最终数字: Desired plot arrangement

我希望这对以后的人有所帮助, 谢谢。