R语言-绘制带九段线地图

普通绘图代码:

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值