打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R语言画地图

工作需要,画某市地图,百度下发现,R有几个可用的包。

   首先,是maps包,可以一句代码画世界地图、美国地图,不过里面没有中国地图的数据,需要配合mapdata包,不过貌似mapdata包的数据也比较老旧,细心的人就发现画出来的中国地图里面没有重庆。

   然后,就是高大上的ggmap包,连接google map的API, 能提供丰富的最新的数据,还有什么道路图,卫星图都一个参数搞定,详细介绍请参见 http://cos.name/2013/01/drawing-map-in-r-era/ , 但是我连不上google啊,只能望包兴叹。

   然后,我想到了百度出品的echarts,貌似里面也有地图啊。不过JavaScript咱不太懂,不过不要紧,早有大神写了recharts包,用R照样使用echarts,不过,我历尽千辛万苦成功安装recharts包后发现,包里只默认画中国地图,某省的地图的数据等貌似没存,就更别说某市的了。

   最后,只能使用最原始的方法了,自己画多边形,构成地图吧,不过这也需要有经纬度数据啊。

   幸好,在前面的搜索中,发现地图的经纬度数据,还是有地方存储的。

   比如地方1:http://www.gadm.org/country  这里存储有全国分省的数据、某省分市的数据、某市分县的数据,不过,我所需要的那个市的数据,还是太老了,老的没法用。

   地方2:配套echarts使用的地图数据在线生成工具,http://ecomfe.github.io/echarts-map-tool/ ,这里的数据虽然也不是最新的(几个新区均没有划分出来),也凑合能用了。

注意:这里下载的数据是json格式,可以用RJSONIO包,很方便就转换成的R的列表格式。

还有,下载的文件是UTF-8编码,如果你用的是windows系统,还要手动用“记事本”打开,另存为ASCII编码,不然你使用RJSONIO转换时,数据中的省市区中文名称老是乱码报错,无法成功转换。

   这就该画多边形了,可以用maptools包中的函数,详细可以参考http://cos.name/2009/07/drawing-china-map-using-r/ ,我这里莫名其妙的安装maptools包失败,就转用ggplot2包,终于搞定。

#  画按区域填充颜色的地图
ggplot(df_coor, aes(x = long, y = lat, group = group, fill = region)) +
  geom_polygon(colour = "white")

   还可以用每个区的人口数据等对不同的区用不同的颜色表示,如颜色越深,代表人口越多等。

   每年的各个区的人口数据,还可以用谢大神的animation包,制作成动画形式,瞬间高大上了呀。呵呵。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用pyecharts实现地图可视化
vue全家桶 Echarts 百度地图,搭建数据可视化系统
小白杀手!可视化必备的5个工具,工作4年才知道原来这么好用
实测三个工具后,我终于找到了地图可视化的神器
性价比最高的职场加速器——数据可视化工具
REmap 入门示例 | 统计之都
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服