R语言可视化——REmap动态地图
![](/assets/blank.gif)
杜雨:EasyCharts团队成员,R语言中文社区专栏作者。
兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化。
个人公众号:数据小魔方(微信ID:datamofang) ,“数据小魔方”创始人。
往期回顾
一个文科小白的数据分析师之路
R语言数据抓取实战——RCurl+XML组合与XPath解析
左手用R右手Python系列之——表格数据抓取之道
![](/assets/blank.gif)
今天开始,要跟着大家学习一个新的可视化R包——REmap包。
说起来,这个包要归功于百度的可视化开源项目——echarts,它是国内为数不多的高水平开源可视化js库,在业界地位首屈一指。
经过大神的努力,我们终于可以在R语言中以简洁的REmap函数形式,来调用Echarts核心功能,而不用亲自去学js代码,就可以创建动态地图可视化作品。
如果有小伙伴儿熟悉百度的大数据可视化项目——百度迁徙地图,以及交通通勤图,以及后来的一带一路可视化路线图,肯定对那些动态地图上流动的线条和路径有很深的印象。
下面我们开始简单介绍REmap的主要功能:
REmap包中涵盖有一组函数,我所知道并用过的有REmap、REmapB、REmapC、REmapH。
每一个函数都对应着几种炫酷的动态效果类型:
今天我们先介绍REmap函数并利用该函数制作简单的流向图:
安装及加载:
install.packages("devtools")
devtools::install_github("lchiffon/REmap") #开发者/包名
library(REmap) #加载
REmap函数的作图理念与ggplot其实还是有雷同的,它也是将数据信息和美学信息分开表达,数据信息包含在数据表中,而美化修饰参数都包含在theme内。
remap(mapdata, title = " ",
subtitle = "",
theme = get_theme("Dark"))
这是一个典型的REmap函数的结构,mapdata是我们所要展示的数据框格式数据集,里面包含了两列数据:起点位置、终点信息。
title用于设置主标题、subtitle用于设置副标题。而theme用于设定整个图形的主题风格,该主题是一个封装的函数变量,里面包含诸多参数信息(各种点线面的颜色、度量等信息)。
下面是一个典型的REmap主题内的参数示例:
get_theme(theme = "Dark",
lineColor = "Random",
backgroundColor = "#1b1b1b",
titleColor = "fff",
borderColor = "rgba(100,149,237,1)",
regionColor = "#1b1b1b",
labelShow = T,
pointShow = F,
pointColor = "gold")
参数说明:
参数一:theme为总体配色,默认选项有“Dark”、“Bright”、“Sky”、“none”
参数二:lineColor为线条颜色,默认是随机, 也可自行设置,如’red’
参数三:backgroundColor为地图外背景颜色
参数四:titleColor为标题颜色
参数五:borderColor为地图中地域边缘颜色,不同省份、城市的边缘
参数六:regionColor为地域颜色,即地图显示的颜色
参数七:labelShow为逻辑参数,是否显示地域名称,默认为T,即显示,只用于remapC函数
参数八:pointShow为逻辑参数,是否显示地域所在点,默认为F,不显示,只用于remapC函数
参数九:pointColor为pointShow中点的颜色,只用于remapC函数
REmap可以非常轻松的获取城市地点的经纬度数据:
以大连为例:
get_city_coord("大连")
[1] 121.62139 38.91934
如果想要获取一组城市的经纬度信息,可以直接赋值给城市向量:
city_list <- c("beijing","tianjin","shenyang","dalian","zhengzhou")
get_geo_position(city_list)
lon lat city
1 116.4136 39.91101 beijing
2 117.2059 39.09091 tianjin
3 123.4390 41.81134 shenyang
4 121.6214 38.91934 dalian
5 113.6313 34.75349 zhengzhou
而且据说这两个函数大部分时候对拼音与汉字,甚至拼音的大小写都不敏感,所以避免了很多麻烦。
创建起始点:
destination<- c("beijing","tianjin","shenyang","dalian","zhengzhou") #终点
origin<- rep("dalian",length(destination)) #起点
#合成数据框格式的起终点数据
map_data<- data.frame(origin,destination)
数据预览:
head(map_data)
origin destination
1 dalian beijing
2 dalian tianjin
3 dalian shenyang
4 dalian dalian
5 dalian zhengzhou
作图函数:
map_out<-remap(mapdata=map_data, #流向地图的数据源(依次为起点、重点两列)
title="我是标题", #设置主标题
subtitle="我是副标题", #设置副标题
theme =get_theme(theme="Bright")) #设置主题(默认主题一共有三套:“Dark”,“Bright,”Sky“)
运行以上代码之后,动态图表已经生成名为map_out的对象,只需使用plot函数调用一下map_out图表对象就可以看到该动态图表效果。
提示下,这里的map_out的对象是一个js代码生成的html对象,运行完plot之后,动态图表效果不是呈现在R的图表窗口而是调用了桌面浏览器的Web窗口。
plot(map_out)
Save img as: C:\Users\ADMINI~1\AppData\Local\Temp\RtmpAxQndv/ID_20161015191055_242761.html
运行完成之后,浏览器窗口会自动呈现动态图表效果:
其实仔细看以上代码,与ggplot的地图代码相比,要简单很多,数据集也很简单(最重要的直接支持地点名称而不需要经纬度数据),当然这些便利性主要归功于它的底层代码是调用Echarts项目,地理位置信息有百度地图的强大系统支持。
另外两个主题:
Dark主题:
map_out1<-remap(mapdata=map_data,title="我是标题",subtitle="我是副标题",theme =get_theme(theme="Dark"))
plot(map_out1)
Sky主题:
map_out2<-remap(mapdata=map_data,title="我是标题",subtitle="我是副标题",theme =get_theme(theme="Sky"))
map_out<-remap(mapdata=map_data,
title="我是标题",
subtitle="我是副标题",
theme =get_theme(theme="Bright"))
plot(map_out2)
以上是该函数内置的三款主题,当然如果你要想自定义主题的话,也是可以的,但是需要将theme="Sky"设置为none,否则系统主题会覆盖掉你自定义的主题。
map_out3<-remap(mapdata=map_data, #设计流向地图
title="我是标题", #设置标题
subtitle="我是副标题", #设置副标题
theme=get_theme(theme="none", #设置主题
lineColor="blue", #设置线条颜色
backgroundColor="white", #设置背景颜色
titleColor="black", #设置标题颜色
borderColor="grey", #设置地区边界颜色
regionColor="SandyBrown") #设置地区颜色
)
plot(map_out3)
但是个人习惯,还是比较喜欢先将主题定义好并命名,然后在运行图表代码的时候直接饮用,这样比较利于后期主题的微调:
mytheme<-get_theme(theme="none", #设置主题
lineColor="blue", #设置线条颜色
backgroundColor="white", #设置背景颜色
titleColor="black", #设置标题颜色
borderColor="grey", #设置地区边界颜色
regionColor="Bisque")
map_out4<-remap(mapdata=map_data,
title="我是标题",
subtitle="我是副标题",
theme=get_theme(theme="none"))
plot(map_out4)
当然如果将数据框中的数据两列调换,那么地图就可以做成流入图。
origin<- c("beijing","tianjin","shenyang","dalian","zhengzhou") #终点
destination<- rep("dalian",length(destination)) #起点
#合成数据框格式的起终点数据
map_data<- data.frame(origin,destination)
map_out5<-remap(mapdata=map_data,
title="我是标题",
subtitle="我是副标题",
theme=get_theme(theme="Bright"))
plot(map_out5)
如果想要存储该HTML对象,需要设定临时目录:
setwd("D:/R/Rscript") #保存图片的位置,不做修改默认为R的工作路径
options(remap.js.web=T) #动态网页图保存命令
plot(map_out5) #保存的同时自动调用浏览器窗口
其实以上所有图表都是带有动态交互效果的,这里我录制了一小段儿视频,大家可以看下:
data-vidtype="2" frameborder="0" allowfullscreen="" class="video_iframe" data-ratio="2.142857142857143" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=u1310mp7z94&width=670&height=376.875&auto=0" style="display: none; width: 670px !important; height: 376.875px !important;" width="670" height="376.875" data-vh="376.875" data-vw="670"/>
往期精彩内容整理合集:
2017年R语言发展报告(国内)
R语言中文社区历史文章整理(作者篇)
R语言中文社区历史文章整理(类型篇)
相关课程推荐
R语言可视化在商务场景中的应用:
☟☟☟猛戳阅读原文,即刻加入课程。
R语言可视化——REmap动态地图相关推荐
- r语言siggenes包_初探R语言可视化交互式包plotly——旭日图(Sunburst Chart)
ploylt原来是一款用来做数据分析和可视化的在线平台,后来有人开发了一些语言(Python.R.Matlab等)的API,在R里就是plotly包了.plotly已经发布在CRAN上了,要想安装,仅 ...
- R语言可视化学习笔记之相关矩阵可视化包ggcorrplot
本文转载自"R语言中文社区",己获授权. 作者简介Introduction taoyan:伪码农,R语言爱好者,爱开源. 个人博客: https://ytlogos.github. ...
- R语言可视化绘制及PDF使用字体参数列表:查看字体列表、可视化绘制图像中的字体参数列表、字体示例并写入pdf
R语言可视化绘制及PDF使用字体参数列表:查看字体列表.可视化绘制图像中的字体参数列表.字体示例并写入pdf 目录 R语言可视化绘制及PDF使用字体参数列表:查看字体列表.可视化绘制图像中的字体参数列 ...
- R语言可视化散点图、气泡图、动态气泡图、数据点重合的散点图、数据点计数图、抖动数据点图、基于lm方法或者loess方法拟合数据点之间的趋势关系曲线、自定义数据点的大小、色彩、添加主标题、副标题、题注
R语言可视化散点图.气泡图.动态气泡图.数据点重合的散点图.数据点计数图.抖动数据点图.基于
- R语言可视化dataframe数据、并自定义设置坐标轴各个标签使用不同的色彩
R语言可视化dataframe数据.并自定义设置坐标轴各个标签使用不同的色彩 目录 R语言可视化dataframe数据.并自定义设置坐标轴各个标签使用不同的色彩
- R语言可视化分面图、假设检验分组t检验、可视化单变量分组分面箱图(faceting bar plot)、添加误差条(error bar)、添加p值、添加抖动数据点(jitter points)
R语言可视化分面图.假设检验分组t检验.可视化单变量分组分面箱图(faceting bar plot).添加误差条(error bar).添加p值.添加抖动数据点(jitter points) 目录
- R语言可视化斜率图、扩充图像纵横比为数据标签显示更整齐、ggrepel包来帮忙
R语言可视化斜率图.扩充图像纵横比为数据标签显示更整齐.ggrepel包来帮忙 目录
- R语言可视化散点图(scatter plot)图、为图中的部分数据点添加标签、ggrepel包来帮忙
R语言可视化散点图(scatter plot)图.为图中的部分数据点添加标签.ggrepel包来帮忙 目录
- R语言可视化、编写自定义函数可视化水平排序条形图(horizontal bar plot)、自定义图像布局模仿经济学人杂志可视化效果、右侧添加标签数值图像方框、自定义背景色、水平条形图中间线条等
R语言可视化.编写自定义函数可视化水平排序条形图(horizontal bar plot).自定义图像布局模仿经济学人杂志可视化效果.右侧添加标签数值图像方框.自定义背景色.水平条形图中间线条.网格线 ...
最新文章
- 给新创建的用户 赋予所有的权利 *.* 查看权限 删除用户 ---------DCL用户权限管理篇...
- SQL Server 的锁定和阻塞
- 您没有权限来打开应用程序_苹果建议:除非应用程序无响应,否则不要滑动强制退出...
- 计算机仿真作业三,计算机仿真技术作业三.doc
- 在一个tomcat 里面 两个相同的项目不能同时运行??
- 用Javascript实现interface的类似功能
- azure批量创建虚拟机_如何将数据库迁移到Azure虚拟机
- Bailian2884 Problem III【入门】
- 数据库基础 新手入门(一)
- 完成端口(CompletionPort)详解
- 各个音阶的频率_声音各个频率的还原
- 使用Java轻松破解顶象滑动拼图验证码,成功率接近100%?
- linux ls -lrt 命令是什么意思
- 掌中革命--手机富媒体
- MapXtrem + Asp.net 地图随窗体改变大小
- Python实现线性判别分析教程
- 打包docker镜像,推送远程服务器,部署到k8s步骤
- 草晶华分享冬季养生小知识
- php会议签到签退系统,会议签到管理系统,无障碍会议签到系统,一卡通会议签到系统,会议签到系统 - 新开普(NewCapec)...
- 中职 计算机网络教材,中职计算机网络教材有哪些?
热门文章
- PPT模板制作色彩如何运用?
- 内联样式表 和 内部样式表
- 显示mapper找不到:Field xxxMapper in xxx required a bean of type ‘xxxMapper‘ that could not be found
- java 内嵌chrome_Java嵌入谷歌内核简单浏览器
- ubuntu18.0.4安装pip3及虚拟环境virtualenv详细教程
- SWC_RTE02-AutoSAR架构【AutoSAR架构设计概述2】
- 第十八章 使用系统监视器 -设置系统监视器选项
- Win 7 下制作 mac 系统启动U盘
- VBA几个常用的模块
- Ontology × DoraHacks 10万美金黑客松现已启航,在WEB3的世界里添“码”行空