在r中可视化和修改for循环中的大量图

时间:2014-09-04 14:51:37

标签: r plot

这是我有很多情节的问题,我想一次一个一个地逐个修改它们。

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

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

这个循环会让图表变得如此之快,以至于我将在图形设备中切开第二个以查看(或根本不看)。

1 个答案:

答案 0 :(得分:5)

可以有几种方法:

(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()
 }

欢迎其他答案。