使用 for 循环将显示的图保存为 SVG

Saving displayed plots using for loop as SVG

如何保存只显示在“绘图窗格”中而不保存在工作区中的 R 图?

这里是关于我如何创建情节的简化示例:

library(corrplot)
data(cars)
res.plot <- cor(cars)
par(mfrow=c(3,2))
for (i in 1:6) {
 corrplot(res.plot)
}

为了保存生成的绘图,我不能使用 ggsave,因为我没有 plot= 输入,因为绘图未保存在工作区中。

此代码也不起作用:

data(cars)
res.plot <- cor(cars)
par(mfrow=c(3,2))
svg(filename=paste0("Rplot_",Sys.time(),".svg"), width = 8.27,height = 11.69)
for (i in 1:6) {
  corrplot(res.plot)
}
dev.off() 

到目前为止我找到的唯一解决方案是使用 R studio 的“导出”对话框,但由于我需要导出大量绘图,因此使用代码保存它们会更快。

有什么想法吗?

您正在尝试保存循环。试试这个:

library(corrplot)
data(cars)
res.plot <- cor(cars)
par(mfrow=c(3,2))

for (i in 1:6) {
  svg(filename=paste0("Rplot_",Sys.time(),".svg"), width = 8.27,height =   11.69)
  corrplot(res.plot)
  dev.off() 
}

或同一面板中的所有地块:

library(corrplot)
res.plot <- cor(cars)
svg(filename=paste0("Rplot_",Sys.time(),".svg"), width = 8.27,height = 11.69)
par(mfrow=c(3,2))
for (i in 1:6) {
  corrplot(res.plot)
}
dev.off() 

我发现了一种不同的方法,它也能满足我的要求:

library(corrplot)
data(cars)
res.plot <- cor(cars)
par(mfrow=c(3,2))
for (i in 1:6) {
 corrplot(res.plot)
}
dev.copy(svg,'myplot.svg',width = 8.27,height = 11.69)
dev.off()