【发布时间】:2014-09-04 14:51:37
【问题描述】:
这是我有许多情节的问题,我想一次以视觉方式逐一修改它们。
xm <- matrix(runif(20000), ncol = 1000)
for (i in 1:ncol(xm)){
hist(xm[,i], col = i)
}
这个循环将使绘图变得如此之快,以至于我将有时间在图形设备中查看(或根本不查看)。
【问题讨论】:
这是我有许多情节的问题,我想一次以视觉方式逐一修改它们。
xm <- matrix(runif(20000), ncol = 1000)
for (i in 1:ncol(xm)){
hist(xm[,i], col = i)
}
这个循环将使绘图变得如此之快,以至于我将有时间在图形设备中查看(或根本不查看)。
【问题讨论】:
有几种方法:
(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()
}
欢迎其他答案。
【讨论】: