我试图将几个地块连在一起。我找到了如何使用鸡蛋对齐图的解决方案:ggarrange。这很好地照顾了主要的情节。但我想让所有情节的y.axis标题也对齐。我不能通过使用ggplot选项的通常建议来做到这一点,因为每次运行我的脚本时,数字的范围会有所不同,并且无法提供固定范围,因此轴标题的位置会发生变化。我知道可以将图例和位置分开放在一个单独的网格中,我想知道我们是否可以对轴做同样的事情?
我在这里创建了一个简单的示例代码。
# example created to explain my problem
gdf <- data.frame(a = runif(10, 0, 1),
b = runif(10, 100, 1000),
c= runif(10, 10000,100000),
d= runif(10, 100000,1000000))
p1 <- ggplot(gdf, aes(a, b)) + geom_point() + ylab ("first")
p2 <- ggplot(gdf, aes(a, c)) + geom_point() + ylab ("Second")
p3 <- ggplot(gdf, aes(a, d)) + geom_point() + ylab ("third" )
egg::ggarrange(p1, p2, p3, ncol= 1, nrow = 3, heights=c(1, 1, 1))
答案 0 :(得分:2)
如果gtables具有相同的结构,那么鸡蛋就是矫枉过正,你可以简单地使用rbind(gtable版本不喜欢unit.pmax进行比较,所以我使用gridExtra版本),
pl <- lapply(list(p1,p2,p3), ggplotGrob)
pl <- Reduce(gridExtra::rbind.gtable, pl)
grid::grid.draw(pl)
答案 1 :(得分:1)