我有3个ggplots ( g1,g2,g3),并希望显示它们的排列,使g1更大,在其他2之间。
g1 =ggplot(data = data.frame(x = 1 ,y =1), aes(x = x, y = 1))+geom_point()
g2 = ggplot(data = data.frame(x = 1 ,y =1), aes(x = x, y = 1))+geom_point()
g3 = ggplot(data = data.frame(x = 1 ,y =1), aes(x = x, y = 1))+geom_point()
library(grid)
lay <- rbind(c(2,1,1,1,3),
c(2,1,1,1,3))
gs = grobTree( ggplotGrob(g1), ggplotGrob(g2), ggplotGrob(g3) )
grid.arrange(grobs = gs, layout_matrix = lay)我正在看这里:https://cran.r-project.org/web/packages/gridExtra/vignettes/arrangeGrob.html,但我遇到了一个错误。对正确的语法有什么想法吗?
Error in gtable_add_grob(gt, grobs, t = positions$t, b = positions$b, :
Not all inputs have either length 1 or same length same as 'grobs'发布于 2018-03-22 23:23:57
我从来没有使用过grobTree函数,但是用一个列表替换它,它可以工作。
gs = list(ggplotGrob(g1), ggplotGrob(g2), ggplotGrob(g3))
grid.arrange(grobs = gs, layout_matrix = lay)这就是结果,正如你想要的那样

https://stackoverflow.com/questions/49439982
复制相似问题