【问题标题】:visualizing and revising a large number of plots in for loop in r在r中的for循环中可视化和修改大量图
【发布时间】:2014-09-04 14:51:37
【问题描述】:

这是我有许多情节的问题,我想一次以视觉方式逐一修改它们。

xm <- matrix(runif(20000), ncol = 1000)

 for (i in 1:ncol(xm)){
    hist(xm[,i], col = i)
 }

这个循环将使绘图变得如此之快,以至于我将有时间在图形设备中查看(或根本不查看)。

【问题讨论】:

    标签: r plot


    【解决方案1】:

    有几种方法:

    (1) 一张一张看图 - 按回车键查看下一张图

    我们可以创建一个中断,用户可以使用返回键查看下一个情节。

    xm <- matrix(runif(20000), ncol = 1000)
    for (i in 1:ncol(xm)){
        hist(xm[,i], col = i, main = paste(i))
        grDevices::devAskNewPage(ask = TRUE)
    }
    

    请注意,R 中的默认行为是 grDevices::devAskNewPage(ask = FALSE)

    (2)输入你想从键盘看到的地块编号

    您选择要绘制的变量,这样您可以避免按时间顺序显示绘图,或者您可以按您想要的顺序输入您想要的绘图编号,并在完成后单击停止。

    for (i in 1:ncol(xm)){ 
        i <- scan(nmax=1)
        hist(xm[,i], col = i, main = paste(i))
    }
    

    (3) 新窗口中的所有绘图

    如果你想每次都制作一个新的情节,你可以使用:

    for (i in 1:10){
        hist(xm[,i], col = i, main = paste(i))
        dev.new()
    }
    

    (4) 单窗口多图

    如果您想在一个图中绘制多个图:

    par(mfrow = c(5,2))
    for (i in 1:10){
        hist(xm[,i], col = i, main = paste(i))
    }
    

    (5) 在单独页面中包含多个绘图的 Pdf 文件

    另一种将文件保存为 PDF 或其他格式的方法:

    以下将创建输出 PDF 将不同页面中的所有数字,然后可以向下滚动。

    pdf("outtrtt.pdf",width=7,height=5)
        for (i in 1:ncol(xm)){
            hist(xm[,i], col = i, main = paste(i))
        }
    dev.off()
    

    (6) 每个绘图单独的 pdf 文件

    或者,如果您想将输出创建为每个绘图或其他图像文件类型的单个 PDF 文件,则可以这样做。请注意,这在 mac 和 windows 中可能有所不同。

     for (i in 1:ncol(xm)){
         pdf(paste("var", i, ".pdf", sep = ""),width=7,height=5)
             hist(xm[,i], col = i, main = paste(i))
         dev.off()
     }
    

    (7) 单独的图像文件

    您可以保存为 jpeg 或您选择的其他格式

     for (i in 1:ncol(xm)){
         jpeg(paste("var", i, ".jpeg", sep = ""),width=700,height=500)
             hist(xm[,i], col = i, main = paste(i))
         dev.off()
     }
    

    欢迎其他答案。

    【讨论】:

    • 我会在这个已经很好的答案中添加将所有图保存在 PDF 文件中的可能性(然后浏览它们)。
    • 感谢您的 cmets 和其他改进。
    猜你喜欢
    • 2021-08-11
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2020-10-26
    相关资源
    最近更新 更多