gpt4 book ai didi

r - for循环中制作的多个ggplot2图的网格

转载 作者:行者123 更新时间:2023-12-03 10:55:22 25 4
gpt4 key购买 nike

作为ggplot2的新用户,我对如此多的可能性不知所措,并且在网上很难找到我认为简单的问题的简单答案。

我想在同一张纸上显示ggplot2的多个图,但要知道这些图来自for循环。

以下示例未编译,仅用于说明:

for(i in c(1:n)){                                   
for(j in c(1:m)){
.......... # some data production
p <- ggplot(df.all) + geom_bar(aes_string(x=class.names[i],fill=var.names[j])
}}

在这里,p被覆盖,但我想取一个矩阵或列表,在其中可以将所有p生成时放入其中,然后是一个简单的函数,例如
display_in_a_grid(list_of_ggplot_plots)

但是,据我尝试,我无法列出绘图矩阵,也无法找到仅接受一个参数作为输入的函数。

关于我看过的东西:

软件包gridExtra中的“arrangeGrob”不起作用,因为它需要为每个图(例如:p1,p2,p3等)指定一个显式名称,例如 http://code.google.com/p/gridextra/wiki/arrangeGrob

ggplot2的“方面”方法不适合我的数据集的组织(或者相反::p)

您有一个简单的方法来解决这个问题吗?

谢谢,

弗朗索瓦

最佳答案

我倾向于同意Richie,但如果您想自己安排他们:

library(gridExtra)
library(ggplot2)
p <- list()
for(i in 1:4){
p[[i]] <- qplot(1:10,10:1,main=i)
}
do.call(grid.arrange,p)

查看 ?arrangeGrob末尾的示例,以彻底消除for循环:
plots = lapply(1:5, function(.x) qplot(1:10,rnorm(10),main=paste("plot",.x)))
require(gridExtra)
do.call(grid.arrange, plots)

关于r - for循环中制作的多个ggplot2图的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9315611/

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