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

简介:

0?wx_fmt=png

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)


0?wx_fmt=png


该地图会写成一个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)


0?wx_fmt=png


  • 更改线条颜色


## set Line color as 'orange'

set.seed(125)

out = remap(dat,title = "REmap实例数据",subtitle = "theme:Bright",

theme = get_theme("None",

lineColor = "orange"))

plot(out)


0?wx_fmt=png


  • 更改其他颜色


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


0?wx_fmt=png


总结


基本上功能就到此为止,未来可能还会增加更多的功能和参数,可以查看我的这篇博文来查看动态地图,炫光地铁线路,带缩放功能的REmap作品,之后我会尽量挑选较好的功能打包到REmap中.


0?wx_fmt=png

0?wx_fmt=png

0?wx_fmt=png


后记


之前在和一位前辈聊我准备写的这个R包,被问到了一个的问题:


“写这个包是给谁用的?”


诚然,对于熟悉JavaScript的人来说,可以用Echarts构建自己的作品.而熟悉R的玩家会更倾向于制作静态的图片而不是基于浏览器的交互图.


最终的我的观点是,简化包的使用,能让REmap解决一些基础的交互地图的问题.并且希望在REmap的基础上,让更多的基础数据玩家了解Echarts,走上不断学习不断进步的数据修(bu)行(gui)路


原文发布时间为:2015-07-27

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
22天前
3D星云图
3D星云图展示
|
2月前
OEEL——使用OEEL快速画出精美图案(以土地利用转移变化为例)
OEEL——使用OEEL快速画出精美图案(以土地利用转移变化为例)
18 0
|
9月前
|
程序员 定位技术 容器
ChatGPT工作提效之使用百度地图在首都为六一儿童节献爱心(多边形覆盖物、文本标注、自动获取经纬度、爱心函数)
ChatGPT工作提效之使用百度地图在首都为六一儿童节献爱心(多边形覆盖物、文本标注、自动获取经纬度、爱心函数)
82 0
|
6月前
|
存储 数据可视化 数据处理
ggalluvial | 冲击图/ 桑基图绘制
ggalluvial | 冲击图/ 桑基图绘制
84 0
|
8月前
|
数据可视化 Go
一行代码绘制高分SCI火山图
经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包——ggVolcano, 它是一个基于R语言和ggplot2绘图包开发的生物信息学数据可视化工具。它可以用于绘制火山图(Volcano plot),帮助研究者分析高通量实验数据,如基因表达谱或蛋白质组学数据,以识别差异表达或差异富集的基因或蛋白质。
188 0
|
10月前
|
存储 数据可视化 atlas
maftools | 从头开始绘制发表级oncoplot(瀑布图)
maftools | 从头开始绘制发表级oncoplot(瀑布图)
221 0
|
11月前
论文技术路线图如何绘制?
本文介绍基于Visio软件绘制技术路线图、流程图、工作步骤图等的方法~
398 1
|
算法 索引
【D3.js - v5.x】(5)绘制力导向图 | 附完整代码
【D3.js - v5.x】(5)绘制力导向图 | 附完整代码
685 0
【D3.js - v5.x】(5)绘制力导向图 | 附完整代码
国内疫情图绘制(静态)
该点子来源于一个小作业,作业要求是使用R平台相关绘图工具绘制中国疫情热力图
152 0
国内疫情图绘制(静态)
|
存储 C++ Windows
眼前一亮!2款免费手绘风流程图绘制工具
“这种风格的流程图好漂亮啊,请问是用什么工具画的啊?”
眼前一亮!2款免费手绘风流程图绘制工具