【R语言作图】如何在地图上任意位置画饼图直方图等

Python06

【R语言作图】如何在地图上任意位置画饼图直方图等,第1张

1.利用R包rworldmap &rworldxtra来作图。

2.已有的map数据中一个国家对应一个坐标,一个国家边界,利用这些已有数据+用户数据构建新的画图数据(其他新添加的图均是如此)。

文件逗号分隔,每列的说明:

1.ID

新的类对象属性ID,自定义,等于原来map中的11列ADMIN

2.Name

后期绘图匹配项,同ID即可,等于原来map中的19列NAME

3.LON

绘图时的经度33列LON

4.LAT

绘图时的纬度34列LAT

注意:这里的经纬度是你自己想要标记饼图的经纬度(起到随意标记点的作用)

5.国家名

和原始map文件中的第11列ADMIN ID对应,每个国家都有一个坐标多边形区域,必须把坐标点画在某个国家内

6.饼图分块-1

7.饼图分块-2

8.legend名字

这里一个饼图只分成2部分,用户可自定义添加更多

成品如下

撰文&编辑:VickieQ

校对:HCLO4 &花毛

R中的画地图的方法不外乎两种,一种是利用GIS方面的数据,在R中画出来,另一种是直接从谷歌地图等地方拿来主义。

先说第一种,最早应该是从maps包开始的,这个包里没记错的话应该用map函数为主,

>map("world", fill = TRUE, col = rainbow(200),ylim = c(-90, 90), mar = c(0, 2, 0, 0))

>title("worldmap")

这种用法大家应该很熟了,比较可惜的是里面的数据是在是太少了,连张中国地图都画不了,好在后来有了mapdata等一系列的包,CRAN上maps包后面那一串全是。

具体的内容看一下文档就ok啦,可是问题又来了,R包里的数据总是不够用的,而且还不新,这个时候就可以考虑sp包了,包里的spplot函数可以用来画地图

参考 https://blog.csdn.net/fanfanrenrenmi/article/details/52565429

https://my.oschina.net/u/2306127/blog/473842](https://my.oschina.net/u/2306127/blog/473842

这两篇文章中已经写的很详细,那就开始比着做吧

虽然之前很少用R做过地图

https://pan.baidu.com/s/1jIicFHk](https://pan.baidu.com/s/1jIicFHk

先来安装一些的包

画个 好看的 中国地图,使用ggplot调整到平面图,调整投影方式后,图像如下,可以不要theme部分,自己查看效果,会有经纬线等信息。