ggplot размер участка grid.arrange

У меня есть три фрейма данных (сохраненные в одном списке), которые я рисую индивидуально в виде гистограмм. Код для графиков выглядит так:

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(plot1, plot1, plot3, ncol=1)

графический вывод

Однако, поскольку на одном графике есть три полосы, а на двух других - только 2 полосы, ширина полос не одинакова при использовании grid.arrange. Поэтому возникает вопрос: как сохранить размер графиков (или ширину полос) с помощью grid.arrange, чтобы они отображались один под другим?

Список, содержащий три фрейма данных, выглядит так:

[[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

person lobo    schedule 17.02.2016    source источник


Ответы (1)


Может быть, использование corre_equal () или corre_fixed () во всех трех графиках поможет?

person Dr. Flow    schedule 17.02.2016