在用R绘制和对齐图形时,我遇到了对齐图形轴的问题,我使用gtable包解决了这个问题。我使用以下解决方案来完美地对齐我的图形。
gMain=ggplotGrob(main_graph)
gExpr=ggplotGrob(expr_graph)
grid.draw(rbind(gMain, gExpr, size="first"))
但是,对于rbind,2个图表具有相同的高度。 我希望第一张图占据大约80%的空间,而第二张图则占据20%(就图表高度而言)。 rbind有可能吗?
我使用rbind只是因为它是一个简单而优雅的解决方案来对齐我的轴,如果我需要求助于其他方法解决对齐问题以保持不同的高度,请随时给出建议!
图表如下:
答案 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)