我有三个数据帧(保存在一个列表中),我将其单独绘制为条形图。这些图的代码如下所示:
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)
但是,由于其中一个图有三个条而另外两个只有两个条,使用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
答案 0 :(得分:0)
也许在所有三个图中使用coord_equal()或coord_fixed()会有帮助吗?