普通绘图代码:
library(maps)
#生成图片名称
plotname <- paste("figs/China","_Res_",as.character(res), ".png",sep="")
#图片尺寸及分辨率
png(plotname, width=6, height=6, units="in", res=400)
#绘图边距,Bottom, left, top, right
par(mar=c(4.5,3,2,1))
#添加世界地图
map('world',add=T,lwd=0.75,col="black")
此时调用的世界地图并不包含九段线,因此需要额外添加九段线
方法一:添加专门的九段线shp数据(LineString类型)
#引入shapefile库
library(sf)
#读取shp文件
china_border <- st_read("/home/sa/Downloads/nineline1/nineline1.shp")
#maps包默认使用的是平展方位(equirectangular)投影,而 Shapefile 使用的是 WGS-84 地理坐标系统。为了确保正确的地图投影,使用sf包的st_transform函数转换投影。
china_border <- st_transform(china_border, 4326)
#画图
plot(st_geometry(china_border), col = "black", border = "black", lwd = 0.75, add = TRUE)
方法二:添加全国shp数据(含九段线)(MultiPolygon类型)
前面几行代码和方法一类似,但全国shp文件是面状数据,在画图时可以将color改成透明,这样可以表现出中国边界轮廓。
plot(st_geometry(china_border), col = "transparent", border = "black", lwd = 0.75, add = TRUE)