400-8652-296

24小时在线咨询24小时在线咨询
资源详情

一点都不能少!用R绘制最完整中国地图(含台湾,藏南,南海诸岛,九段线)

我们前边用三篇推文介绍了用R对世界地图搭配数据的绘制,分别是:


  1. 用ggplot2包绘制主要地区和城市的疫情格局:如何用R绘制新冠病毒世界格局(一)(附完整代码)

  2. 用tmap包绘制国家/地区水平的整体情况:如何用R绘制新冠病毒世界格局(二)(附完整代码)
  3. 探讨局部地区疫情发展情况的绘制以及绘制时间序列动态图:用R绘制局部地区疫情分布图+时间序列动态图



三篇推送受到了非常好的反响,推文中也包含实列代码,感兴趣的小伙伴可以亲自测试一下。但是同时,我们推文中存在的一个“瑕疵”,正如有位朋友的留言(上图中最后一个),一直让投必得编辑部如鲠在喉,终于经过我们一段时间的努力,我们很骄傲的宣布:使用咱们投必得的地图文件包,让你绘制出一幅包含最全中国的世界地图:中国一点都不能少!


前言

我们中国的地图一点都不能少,然而我发现大部分的R包中的地图文件对中国地图都做的不认真,这些包都不是中国人开发的,所以我们也没有什么办法,但作为中国人,我们有自己神圣不可分割的领土。尤其是在一张全球地图中。

那为什么我们今天要做这个事情呢?因为我们迄今为止没有发现一份世界地图在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包,到时我们也会在公众号宣布。

预估报价
联系我们
tel联系电话
400-8652-296
email公司邮箱
info@topeditsci.com
wechat微信咨询
qr-code
recommend

推荐好友

奖励机制大升级

推荐好友成功下单(订单金额满1000元),您将享受下单金额10%的返现奖励!添加客服微信开始推荐吧!

一点都不能少!用R绘制最完整中国地图(含台湾,藏南,南海诸岛,九段线) | TopEdit投必得