R grid.draw为图形绘制不同的高度

时间:2015-02-02 01:28:19

标签: r graph ggplot2

在用R绘制和对齐图形时,我遇到了对齐图形轴的问题,我使用gtable包解决了这个问题。我使用以下解决方案来完美地对齐我的图形。

gMain=ggplotGrob(main_graph)
gExpr=ggplotGrob(expr_graph)
grid.draw(rbind(gMain, gExpr, size="first"))

但是,对于rbind,2个图表具有相同的高度。 我希望第一张图占据大约80%的空间,而第二张图则占据20%(就图表高度而言)。 rbind有可能吗?

我使用rbind只是因为它是一个简单而优雅的解决方案来对齐我的轴,如果我需要求助于其他方法解决对齐问题以保持不同的高度,请随时给出建议!

图表如下:

1 个答案:

答案 0 :(得分:1)

以下是我使用gridExtra包进行处理的方法。 请注意,使用arrangeGrob代替grid.arrange可以使用漂亮的ggsave函数。

library(ggplot2)
library(gridExtra)

df1 <- data.frame(x=rnorm(15, 0, 3),
                  y=rnorm(15, 0, 3))

df2 <- data.frame(x=rnorm(15, 0, 3),
                  y=rnorm(15, 0, 3))


p1 <- ggplot(df1, aes(x=x, y=y))+
  geom_path()+
  ylab("tall plot")

p2 <- ggplot(df2, aes(x=x, y=y))+
  geom_point()+
  ylab("short plot")

p_both <- arrangeGrob(p1, p2, heights=c(8,2))
print(p_both)

stacked plot