gpt4 book ai didi

r - grid.arrange ggplot2使用列而不是使用列表按行进行绘制

转载 作者:行者123 更新时间:2023-12-04 10:44:34 28 4
gpt4 key购买 nike

我想使用ggplot2从列表中创建grid.arrange图的多图,但是在按行排列之前按列排列它们。

gg_list1 <- list(qplot(mpg, disp, data = mtcars), 
qplot(hp, wt, data = mtcars),
qplot(qsec, wt, data = mtcars))

gg_list2 <- list(qplot(mpg, disp, data = mtcars),
qplot(hp, wt, data = mtcars),
qplot(qsec, wt, data = mtcars))

我知道我可以这样做:
do.call(grid.arrange,c(gg_list1,gg_list2 , ncol = 2, nrow  = 3))

但它从上到下从左到右填充。

我已经试过了:
 do.call(grid.arrange, c(gg_list1, arrangeGrob(gg_list2, nrow = 3), ncol = 2))

但是获取 Error: length(widths) == ncol is not TRUE
有任何想法吗?

最佳答案

您可以使用grobs参数传递列表,并使用as.table参数按列填充,因此,使用c进行了展平

grid.arrange(grobs = c(gg_list1, gg_list2), ncol = 2, as.table = FALSE)

grid plot

如果您想要更复杂的布局,请使用 layout_matrix参数:
my_layout <- rbind(c(1, 1:3, 4), c(1, 1:3, 4), c(1, 1:3, 5), c(1, 1:3, 6))

my_layout
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 1 2 3 4
## [2,] 1 1 2 3 4
## [3,] 1 1 2 3 5
## [4,] 1 1 2 3 6

grid.arrange(grobs = c(gg_list1, gg_list2), layout_matrix = my_layout)

complex grid plot

有关详细信息,请参见 the arrangeGrob vignette

关于r - grid.arrange ggplot2使用列而不是使用列表按行进行绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877386/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com