ggplot plot size grid.arrange

ggplot plot size grid.arrange,r,ggplot2,geom-bar,R,Ggplot2,Geom Bar,我有三个数据帧(保存在一个列表中),分别以条形图的形式绘制。绘图的代码如下所示: plot1 <- ggplot(list[[1]], aes_string(x = names(list[[1]])[[1]], y = "Kat")) + geom_bar(stat = "identity", width = 0.6) + ylim(0,100) + coord_flip() + guides(fill=FALSE) + theme_bw() + theme( st

我有三个数据帧(保存在一个列表中),分别以条形图的形式绘制。绘图的代码如下所示:

plot1 <- ggplot(list[[1]], aes_string(x = names(list[[1]])[[1]], y = "Kat")) + 
  geom_bar(stat = "identity", width = 0.6) + 
  ylim(0,100) +
  coord_flip() +
  guides(fill=FALSE) +
  theme_bw() + theme( strip.background  = element_blank(),
                      panel.grid.major = element_line(colour = "grey80"),
                      panel.border = element_blank(),
                      axis.ticks = element_blank(),
                      panel.grid.minor.y = element_blank(),
                      panel.grid.major.y = element_blank(),
                      axis.text.y = element_text(hjust = 0.5))

plot2 <- ggplot(list[[2]], aes_string(x = names(list[[2]])[[1]], y = "Kat")) + 
  geom_bar(stat = "identity", width = 0.6) + 
  ylim(0,100) +
  coord_flip() +
  guides(fill=FALSE) +
  theme_bw() + theme( strip.background  = element_blank(),
                      panel.grid.major = element_line(colour = "grey80"),
                      panel.border = element_blank(),
                      axis.ticks = element_blank(),
                      panel.grid.minor.y = element_blank(),
                      panel.grid.major.y = element_blank(),
                      axis.text.y = element_text(hjust = 0.5))


plot3 <- ggplot(list[[3]], aes_string(x = names(list[[3]])[[1]], y = "Kat")) + 
  geom_bar(stat = "identity", width = 0.6) + 
  ylim(0,100) +
  coord_flip() +
  guides(fill=FALSE) +
  theme_bw() + theme( strip.background  = element_blank(),
                      panel.grid.major = element_line(colour = "grey80"),
                      panel.border = element_blank(),
                      axis.ticks = element_blank(),
                      panel.grid.minor.y = element_blank(),
                      panel.grid.major.y = element_blank(),
                      axis.text.y = element_text(hjust = 0.5))

但是,由于其中一个绘图有三个条形图,而另外两个只有两个条形图,使用grid.arrange时,条形图的宽度不相同。因此,问题: 如何使用grid.arrange保持绘图的大小(或条形图的宽度)以一个低于另一个的方式显示

包含三个数据帧的列表如下所示:

grid.arrange(plot1, plot1, plot3, ncol=1)
[[1]]
  Bildung Kat
2    Hoch  67
3 Mittel   50
4    Tief  25

[[2]]
  Geschlecht Kat
6          W  60
7          M  40

[[3]]
   Region Kat
9   Stadt  80
10   Land  70
也许在所有三个图中使用coord_equal()或coord_fixed()会有所帮助