【问题标题】:How to make multiple plots with a for loop?如何使用 for 循环制作多个图?
【发布时间】:2018-02-26 22:54:36
【问题描述】:

我正在尝试使用 r 中的 waffle 包,并尝试使用 for 循环一次制作多个绘图,但无法让我的代码正常工作。我有一个数据集,其中包含每年可再生能源的值,并且由于它是 40 多年的数据,因此正在寻找一种简单的方法来使用 for 循环而不是逐年绘制这些数据。我究竟做错了什么? 我从 1:16 开始将它作为一个实验,看看它是否会起作用,尽管实际上我会在我的数据集中多年来一直这样做。

for(i in 1:16){
renperc<-islren$Value[i]
parts <- c(`Renewable`=(renperc), `Non-Renewable`=100-renperc)
waffle(parts, rows=10, size=1, colors=c("#00CC00", "#A9A9A9"), 
       title="Iceland Primary Energy Supply", 
       xlab=islren$TIME)
}

【问题讨论】:

  • 到底出了什么问题?您能否提供一些示例数据,以便我们测试您的代码?
  • 您好 :) 抱歉,规格不好。单独的图有效,但是当我尝试 for 循环(无论是否在同一个面板中制作图)时,实际上并没有创建任何图。数据在这里link

标签: r for-loop plot waffle-chart


【解决方案1】:

如果我正确地回答了您的问题,您想在同一个面板中绘制所有 16 次迭代吗?您可以使用 par(mfrow = c(4,4)) 将绘图窗口参数化为 16 个较小的绘图(创建一个 4 x 4 矩阵并递归地绘制到每个单元格中)。

## Setting the graphical parameters
par(mfrow = c(4,4))

## Running the loop normally
for(i in 1:16){
    renperc<-islren$Value[i]
    parts <- c(`Renewable`=(renperc), `Non-Renewable`=100-renperc)
    waffle(parts, rows=10, size=1, colors=c("#00CC00", "#A9A9A9"), 
           title="Iceland Primary Energy Supply", 
           xlab=islren$TIME)
}

如果您需要更多图(例如 40),您可以增加图形参数中的数字(例如 par(mfrow = c(6,7))),但这会创建非常小的图。一种解决方案是在多个循环中进行(for(i in 1:16)for(i in 17:32);等)

【讨论】:

  • 您好,感谢您的帮助 :) 我在一个面板中尝试了多个图,并且只尝试了单独的 ines,但我的图没有显示 - 所以我想象我的循环出了点问题。它仍然没有绘制它们,我不知道为什么。无论如何谢谢你的回答,如果你想看看,我也会链接data
【解决方案2】:

更新:当我尝试输入任何高于一个值(例如 1:16)或字母时,代码根本没有绘制任何东西,无论是单独的图还是在一个绘图窗口中的多个(我认为可能waffle 不支持与常规绘图相同的方式)。最后,我把它变成了一个函数,虽然我仍然不确定为什么我的原始方法不起作用。请参阅下面的代码。我还对其进行了一些调整,例如添加了 ggsave。

    #function
    waffling <- function(x){
    renperc<-islren$Value[x]
    parts <- c(`Renewable`=(renperc), `Non-Renewable`=100-renperc)
    waffle(parts, rows=10, size=1, colors=c("#00CC00", "#A9A9A9"), title="", 
    xlab=islren$TIME[x])
    ggsave(file=paste0("plot_", x,".png"))}

    for(i in 1:57){
    waffling(i)
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2021-05-23
    • 2021-01-29
    • 2014-11-24
    相关资源
    最近更新 更多