控制ggplot图的大小以匹配第二个图

时间:2019-01-12 18:16:19

标签: r ggplot2

我希望彼此重叠的两个地块具有相同的大小。问题在于刻度线标签的长度不同,因此绘图未对齐。仅缩小字体不是解决方案,因为它对读者不友好。必须有一种方法可以说明ggplot中应有多大的图。 我只想手动控制图的大小,而不管是否要使用条形图或条形图和箱线图等。我该如何做到这一点?

 library(ggplot2)
library(grid)
library(gridExtra)

df1 <- data.frame(a = as.factor(1:20), b = runif(20, 500000, 900000))
df2 <- data.frame(a = as.factor(1:20), c = rnorm(2000))

plot1 <- ggplot(df1, aes(x = a, y =b)) + geom_bar(stat = "identity")
plot2 <- ggplot(df2, aes(x = a, y =c)) + geom_boxplot()

grid.arrange(plot1,
             plot2,
             ncol = 1)

这是我的例子: enter image description here

1 个答案:

答案 0 :(得分:0)

正如提到的评论之一,软件包cowplot具有您需要的功能。

library(ggplot2)
library(cowplot)

df1 <- data.frame(a = as.factor(1:20), b = runif(20, 5, 9))
df2 <- data.frame(a = as.factor(1:20), b = runif(20, 50000, 90000))

plot1 <- ggplot(df1, aes(x = a, y =b)) + geom_bar(stat = "identity")
plot2 <- ggplot(df2, aes(x = a, y =b)) + geom_bar(stat = "identity")

#see ?plot_grid for more details
plot_grid(plot1,plot2,ncol = 1, align = "v", rel_heights = c(.7, .3))

reprex package(v0.2.1)于2019-01-12创建