• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何将嵌套的plot_grid缩放到相同的大小?

r 来源:Daniel Valencia C. 3次浏览

我有7个地块,我把它们分成2列,一个有3个地块,另一个有4个地块。我使用cowplotplot_grid。结果几乎是完美的,但是,有3个地块的列有更大的地块。如何缩放此列以在所有图中获得相同的大小并对齐每列的第一个和最后一个图?如何将嵌套的plot_grid缩放到相同的大小?

library(ggplot2) 
library(cowplot) 

Value <- seq(0,1000, by = 1000/10) 
Index <- 0:10 
DF <- data.frame(Index, Value) 

plot1 <- ggplot(DF, aes(x = Index, y = Value)) + 
    geom_line(linetype = 2) + 
    theme(aspect.ratio = 0.5) 

plot2 <- ggplot(DF, aes(x = Index, y = Value)) + 
    geom_line(linetype = 2) + 
    theme(aspect.ratio = 0.5) 

plot3 <- ggplot(DF, aes(x = Index, y = Value)) + 
    geom_line(linetype = 2) + 
    theme(aspect.ratio = 0.5) 

plot4 <- ggplot(DF, aes(x = Index, y = Value)) + 
    geom_line(linetype = 2) + 
    theme(aspect.ratio = 0.5) 

plot5 <- ggplot(DF, aes(x = Index, y = Value)) + 
    geom_line(linetype = 2) + 
    theme(aspect.ratio = 0.5) 

plot6 <- ggplot(DF, aes(x = Index, y = Value)) + 
    geom_line(linetype = 2) + 
    theme(aspect.ratio = 0.5) 

plot7 <- ggplot(DF, aes(x = Index, y = Value)) + 
    geom_line(linetype = 2) + 
    theme(aspect.ratio = 0.5) 

col1 <- plot_grid(plot1, plot2, plot3, align = "v", ncol = 1) 
col2 <- plot_grid(plot4, plot5, plot6, plot7, align = "v", ncol = 1) 
plot_grid(col1, col2, ncol = 2, align = "hv") 

enter image description here

===========解决方案如下:

你可以把一个空积成你的第一列:

col1 <- plot_grid(plot1, plot2, plot3, NULL, align = "v", ncol = 1) 

但是,对我来说,这不是一个嵌套的情节格栅的情形。嵌套的小区网格专门用于将小区与复杂的安排相结合,例如一列中的一个图横跨另一列中的两行。你想要的东西,我会做一个plot_grid()通话,就像the other comment提示:

plot_grid(plot1, plot4, plot2, plot5, plot3, plot6, NULL, plot7, 
      ncol = 2, align = "hv") 

enter image description here

也请注意,当您指定一个特定的纵横比align选项不起作用。您可以指定纵横比或对齐。在大多数情况下,没有必要指定宽高比,您可以在保存图形时执行此操作。功能save_plot()特别需要宽高比选项(应用于整个图像,但不是绘图区域)。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)