我想将多个地块排列成一个图形,在地块区域之间没有任何间隙,并且所有地块的大小都完全相同(请参见下图以获取我想要的图形的草图,其中包括6个单独的地块)。 / p>
我尝试了ggarrange
(ggpubr)和plot_grid
(cowplot)以及其他几个问题,但它们似乎都存在相同的问题-您可以对齐图以使其具有相同的大小,但不能将它们彼此靠近。
ggdraw
允许您精确指定绘图的位置,但是它们的大小都略有不同。
有办法克服吗?
基本上,我要使六个图形的绘图区域(显示数据的地方,不轴和标签)相同,然后连续排列它们。到目前为止,我还没有找到执行此操作的方法。
所有6张图的x轴变量都相同,但y不同,并且在某些图上有多个系列,而在其他图上没有,因此我不能在ggplot2中使用facet选项。
请帮助!
编辑:对不起,更多信息-因为我的绘图具有不同的y变量,所以绘图边距和绘图面板的大小都略有不同。因此,这意味着当我尝试将它们全部添加在一起时,它们是不一致的。 Plots different sizes out of alignment。 cowplot中的plot_grid允许您指定位置和大小,但BUT的大小是整个图的大小,包括的面板和边距。由于存在Y轴标签,因此页边距的大小不同,使用plot_grid的参数调整它们的大小并不是那么简单。
答案 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
我希望这对以后的人有所帮助, 谢谢。