REmap是一个基于Echarts 的一个R包.主要的目的是为广大数据玩家提供一个简便的,可交互的地图数据可视化工具.目前托管在github, https://github.com/lchiffon/REmap
使用如下步骤安装:
library(devtools)
install_github('lchiffon/REmap')
目前V0.1提供的功能为百度迁徙的实现
提示:请使用Chrome或者Firefox来作为默认浏览器
最后要声明的一点:这个包并没有封装太多的参数,目的是简化使用和学习的流程,如果你想更深一步的修改这个可视化工具,请深入的学习Echarts!
Feature
1.使用Echarts封包,地图绘制使用的是SVG图形
2.采用百度API来自动获取城市的经纬度数据
3.支持Windows!
使用向导
获取经纬度
获取经纬度的函数是基于BaiduAPI的一个获取地理位置的功能.这个函数不仅是REmap下的一个功能,实际上,你也可以用它来抓取经纬度数据:
基本函数:
get_city_coord获取一个城市的经纬度
get_geo_position获取一个城市向量的经纬度
library(REmap)
city_vec = c("北京","Shanghai","广州")
get_city_coord("Shanghai")
[1] 121.47865 31.21562
get_geo_position (city_vec)
lon lat city
1 116.6212 40.06107 北京
2 121.4786 31.21562 Shanghai
3 113.3094 23.39237 广州
注: windows用户会看到city一列为utf-8编码,可以使用get_geo_position (city_vec2)$city查看列向量的信息.(我能说我最好的建议是换Mac么?)
绘制迁徙地图
绘制地图使用的是主函数remap
remap(mapdata, title = "", subtitle = "",
theme =get_theme("Dark"))
mapdata一个数据框对象,第一列为出发地点,第二列为到达地点
title标题
subtitle副标题
theme控制生成地图的颜色,具体将会在get_theme部分说明
set.seed(125)
origin = rep("北京",10)
destination = c('上海','广州','大连','南宁','南昌',
'拉萨','长春','包头','重庆','常州')
dat = data.frame(origin,destination)
out = remap(dat,title = "REmap实例数据",subtitle = "theme:Dark")
plot(out)
该地图会写成一个html文件,保存在电脑里面,并通过浏览器打开该文件.以下的方式都可以看到这个地图:
## Method 1
remap(dat,title = "REmap实例数据",subtitle = "theme:Dark")
## Method 2
out = remap(dat,title = "REmap实例数据",subtitle = "theme:Dark")
out
## Method 3
plot(out)
个性化地图
正如之前所说的,为了简化学习和使用的流程,REmap并没有封装太多的参数.(真的不是我懒)如果想更个性化地调整Echarts的参数,请移步Echarts的官方文档http://echarts.baidu.com/doc/doc.html
REmap中get_theme提供了迁徙地图中常用颜色的调整:
get_theme(theme = "Dark", lineColor = "Random",
backgroundColor = "#1b1b1b", titleColor = "#fff",
borderColor = "rgba(100,149,237,1)", regionColor = "#1b1b1b")
theme默认主题,除了三个内置主题,可以使用“none”来自定义颜色
a character object in (“Dark”,“Bright,”Sky“,”none“)
lineColor线条颜色,默认随机,也可以使用固定颜色
Control the color of the line, “Random” for random color
backgroundColor背景颜色
Control the color of the background
titleColor标题颜色
Control the color of the title
borderColor边界颜色(省与省之间的信息)
Control the color of the border
regionColor区域颜色
Control the color of the region
颜色可以使用颜色名(比如’red’,’skyblue’等),RGB(“#1b1b1b”,“#fff”)或者一个rgba的形式(“rgba(100,100,100,1)”),可以在这里找到颜色对照表.
默认模板: Bright
## default theme:"Bright"
set.seed(125)
out = remap(dat,title = "REmap实例数据",subtitle = "theme:Bright",
theme = get_theme("Bright"))
plot(out)
更改线条颜色
## set Line color as 'orange'
set.seed(125)
out = remap(dat,title = "REmap实例数据",subtitle = "theme:Bright",
theme = get_theme("None",
lineColor = "orange"))
plot(out)
更改其他颜色
## Set Region Color
out = remap(dat,title = "REmap实例数据",subtitle = "theme:Bright",
theme = get_theme("None",
lineColor = "orange",
backgroundColor = "#FFC1C1",
titleColor = "#1b1b1b",
regionColor = '#ADD8E6'))
plot(out)
总结
基本上功能就到此为止,未来可能还会增加更多的功能和参数,可以查看我的这篇博文来查看动态地图,炫光地铁线路,带缩放功能的REmap作品,之后我会尽量挑选较好的功能打包到REmap中.
后记
之前在和一位前辈聊我准备写的这个R包,被问到了一个的问题:
“写这个包是给谁用的?”
诚然,对于熟悉JavaScript的人来说,可以用Echarts构建自己的作品.而熟悉R的玩家会更倾向于制作静态的图片而不是基于浏览器的交互图.
最终的我的观点是,简化包的使用,能让REmap解决一些基础的交互地图的问题.并且希望在REmap的基础上,让更多的基础数据玩家了解Echarts,走上不断学习不断进步的数据修(bu)行(gui)路
原文发布时间为:2015-07-27
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号
相关资源:地图为百度的地图的迁徙图.rar