如何在r中保存使用循环和mapplot包构建的多个图形?

Posted

技术标签:

【中文标题】如何在r中保存使用循环和mapplot包构建的多个图形?【英文标题】:How to save multiple figures built with a loop and mapplot packages in r? 【发布时间】:2020-09-18 04:53:16 【问题描述】:
set.seed(1000);DF=data.frame(Lon=runif(20,-93,-87),Lat=runif(20,27,30),
          Pie1=sample(50, 20),Pie2=sample(50, 20),Pie3=sample(50, 20));head(DF);NGoM<-getNOAA.bathy(-93,-87,28,31, resolution=1,keep=FALSE)
for(i in colnames(DF[,3:5]))
z=DF[,i]
dev.new()
plot(NGoM,col=brewer.pal(n=6,name="Blues"),bg="blue",xaxt="n", yaxt="n",xlab="",ylab="")
map(add=TRUE, col="gray", fill = TRUE)
compassRose(-92, 30.5, rot=0, cex=1)
scalebar(200, xy= c(-90,19.4), type = "bar", divs = 4, cex = 0.7, below = "kilometers", lwd=2, family="Arial")
Ad<-aggregate(list(z=z), list(x=DF$Lon, y=DF$Lat),sum)
draw.bubble(Ad$x, Ad$y, Ad$z,maxradius= 0.25, pch=21, bg=("red"))
legend.bubble(x=-90, y=30.8, z=max(Ad$z), maxradius=0.25, 
          bg="gray78",txt.cex=0.8, pch=21, pt.bg="red")
text(St$Lon,St$Lat,St$Station, family="Arial",cex=0.8, pos=1)
mtext(text="Longitude",side=1, line=2, cex=1)
mtext(text="Latitude",side=2, line=4, cex=1)
degAxis(1, cex.axis=1)
degAxis(2, las=1, cex.axis=1)
box()
ggsave(filename = paste0("C:/Users/xxx/Documents/Fig_", i,.tiff"),plot =last_plot(), device = "png", dpi = 600)

上面提供的代码是获取多个地图的示例;但是,保存的文件是空的。

【问题讨论】:

【参考方案1】:

在不同网站上查找r的功能信息后,我找到了我的问题的解决方案。

第一步是在循环的第一部分设置图形选项

png(paste0("Amap",i,".tiff"),width = 1024, height = 768)

第二步也是最后一步是关闭box()之后的函数。

dev.off() 

【讨论】:

以上是关于如何在r中保存使用循环和mapplot包构建的多个图形?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 上使用 Magick 编写多个图像

使用循环运行多个功能并分别保存输出

如何在 R 中保存循环(使用 if 语句)的结果?

如何在“R”中的foreach循环中导出多个函数或包

如何使用循环插入噪声并将多个图像保存在不同的文件夹中?(matlab)

如何在 R 中使用带有 ggpie 函数的循环并在数据帧之后保存文件名?