资源详情
一点都不能少!用R绘制最完整中国地图(含台湾,藏南,南海诸岛,九段线)
我们前边用三篇推文介绍了用R对世界地图搭配数据的绘制,分别是:
用ggplot2包绘制主要地区和城市的疫情格局:如何用R绘制新冠病毒世界格局(一)(附完整代码)。
用tmap包绘制国家/地区水平的整体情况:如何用R绘制新冠病毒世界格局(二)(附完整代码)。 探讨局部地区疫情发展情况的绘制以及绘制时间序列动态图:用R绘制局部地区疫情分布图+时间序列动态图。
前言
一份包含完整中国地图的世界地图
首先是得到一份标准的中国地图,这个网络上很难下载得到。我们通过地理信息专业的朋友搞到了一份拥有正确中国边境的世界高分辨地图shape文件。这张地图绘制出来超过了1个G,可以满足大幅出版印刷需求,但是我们正常科研用的没必要这么大(尤其是R中作图),所以我们在这里将这份地图改成了适合我们常用的版本。
载入R包
library(maptools)
library(sf)
library(ggplot2)
library(maps)
library(mapdata)
library(sf)
library(raster)
library(dplyr)
library(spData)
绘制世界地图总体轮廓
worldmap <- sf::st_read('../正确的世界地图/WorldMap.shp')
worldmap
p = ggplot() + geom_sf(data = worldmap ,aes( geometry = `geometry`,fill = `ENG_NAME`)) +
scale_fill_discrete(guide = FALSE)
p
ggsave("worldmap1.pdf",p,width = 40,height = 30)
添加九段线
nine <- sf::st_read('../中国边境等/全国行政区划练习用数据/国界九段线.shp')
nine
p
p1 = p +geom_sf(data = nine,aes( geometry = `geometry`),color = "grey30")
p1
ggsave("worldmap2.pdf",p1,width = 40,height = 30)
添加南海诸岛
northear <- sf::st_read('../中国边境等/全国行政区划练习用数据/南海诸岛.shp')
p2 = p1 +geom_sf(data = northear,aes( geometry = `geometry`),color = "grey30")
p2
# p = ggplot() + geom_sf(data = worldmap ,aes( geometry = `geometry`,group = `ENG_NAME`),fill="grey",alpha=0.3) +
# scale_fill_discrete(guide = FALSE)
# p
# ggsave("worldmap.pdf",p,width = 24,height = 16)
ggsave("worldmap3.pdf",p2,width = 40,height = 30)
大功告成
写在最后:
投必得毕竟不是地理信息方面的专家,不过我们已经尽力专业,全面,如果小伙伴们发现有任何瑕疵,请一定对我们批评指正!让我们大家一起守护祖国的一点一滴!
我们平常很少主动请大家转载咱们的文章,但是这篇我们真诚地请大家把文章分享转发出去,让更多的小伙伴看到。如果有急用这些文件想自己绘制地图的小伙伴,可以联系我们小编topedit6666,不急用的朋友可以等我们开发相应的R包,到时我们也会在公众号宣布。
