登录 注册

REmap发布,用R绘制百度迁徙图

发布时间: 2015-07-23 阅读数: 15346

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)路

 

本文作者郎大为SupStat高级数据科学家,雪晴数据网专职讲师,博客地址http://chiffon.gitcafe.io
分享到:
热门文章

REmap发布,用R绘制百度迁徙图

2015年07月23日更新 15346次阅读

学习R语言,一篇文章让你从懵圈到入

2016年05月09日更新 11000次阅读

清华大学教授:大数据时代 统计学依

2015年08月07日更新 10237次阅读

非统计学专业的人该如何学习 R 语

2015年07月24日更新 6801次阅读

在R中填充缺失数据—mice包

2015年12月31日更新 5593次阅读

数据科学的五个新R包

2015年08月23日更新 5313次阅读
热门课程

R语言初级课程

2015年02月20日发布 2667名学员

R语言高效数据清理工具包dplyr

2015年08月30日发布 1396名学员

R语言数据分析入门

2016年05月10日发布 1122名学员

如何用R做数据预处理

2016年06月03日发布 961名学员

R语言大规模数据分析实战

2015年12月17日发布 855名学员

全栈数据工程师养成攻略

2016年11月08日发布 774名学员
登录 注册