R语言学习笔记︱Echarts与R的可视化包——地区地图
笔者寄语:感谢CDA DSC训练营周末上完课,常老师、曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法。通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一些代码,可读性很强。
关于此包起源,百度联姻d3.js=echarts,echarts+R=recharts包(Yang Zhou和Taiyun Wei),谢益辉老师修改可以传递js参数,实现更多功能,
但是呢,谢益辉老师的改良版包还没发出来,于是该神就做了一个函数,先给大家试用(点赞谢益辉老师
)。
该函数叫echartR,实质是将Echarts参数封装成list,大多数功能还是和echart函数一样。
要想使用该函数需要:从github加载recharts包+echartR函数+一些全局设定
该包的下载、安装以及echartR函数的下载,看谢益辉老师的GitHub主页,贴网址:https://github.com/madlogos/recharts
动态图可看:http://madlogos.github.io/recharts/files/echartR.html#force
——————————————————————————————
号外 号外 新消息(更新于20161002):
谢老师已经把echartR托管到github上了,可以调用。同时,
谢老师已经把函数封装好,放在github中,可以下载调用。
官方链接:http://madlogos.github.io/recharts/index_cn.html
地图部分的示例 http://madlogos.github.io/recharts/Basic_Plots_31_Map.html
if (!require(devtools)) library(devtools)
install_github("madlogos/recharts")
1 知识地图Knowledge Map
——————————————————————————————
一、基本语法
echart(data=数据, x=~x轴变量,y=~y轴变量,type=‘scatter’, palette=调色盘颜色,title=主标题 ,subtitle=副标题,xAxis=x轴选项,yAxis=y轴选项,markLine=标记线,markPoint=标记点,等)
该语法使用来源上课讲义之中,具体的关于散点图、气泡图、饼图、玫瑰图啥的看谢老师主页,主要上excel不太好实现的地图。
地图的类型有三类:区域标注、点标注、线标注(数据结构最复杂),举区域标准,关于点标注以及现标准给出与区域标准不同的地方。
画地图最麻烦的就是数据整理,如果要填写点/线就得重构一些数据。
——————————————————————————————
二、区域标注
主要就输入数据类型+函数+加入点/线三个部分。
1、区域标注输入数据结构
几个省份,2012,2013,2014三年的GDP数值(数据来源查看谢老师主页),区域标注的数据结构最为简单易懂。
其中省份数据以及年的数据,需要变成因子型,谢老师使用的方法是:
as.factor(enc2native(dtgdp$Prov))
这个enc2native用得很有意思,用来解决“中文转码在Windows里一直是老大难”的问题,读取或设置字符向量的编码。
2、函数
echartR(dtgdp, x = ~Prov, y = ~GDP, series= ~Year,
type=c('map','china','area'), palette='gdocs',
title="GDPs of China Provinces, 2012-2014 (Million USD)",
subtitle='(source: Wikipedia)',
subtitle_url="https://raw.githubusercontent.com/madlogos/Shared_Doc/master/Shared_Documents/ChinaGDP.txt",
dataRangePalette=c('red','orange','yellow','green','limegreen'),
dataRange=c('High',"Low"),pos=list(toolbox=3),markPoint=top3)
函数解读:series代表分类标签(此时为年);
type是设置中国地图、世界地图(world)、区域标注(area)、点标注(point);
palette调色板,笔者觉得该函数是地图上点的颜色,可用许多调色板样式 Including ‘aetnagreen‘, ‘aetnablue‘, ‘aetnaviolet‘, ‘aetnaorange‘, ‘aetnateal‘, ‘aetnacranberry‘;
dataRangePalette: 如打开数据漫游,可单独指定漫游色板(同palette功能),否则采用Echarts默认值,笔者觉得该调色函数,才是最主要的,而且不仅仅局限在“red”、"yellow",还可以调色RGB中许多颜色类型,比如#FF6A6A(浅红色),详情可查《RGB颜色查询对照表》。
dataRange代表左下角那个,high/low;
toolbox=3代表右下角那一列,小铅笔,保存图片的小按钮,3是右下角,1是右上角。
3、加点函数markPint
比如加一个浙江省GDP的点,c(浙江,浙江,10000,x,y,T)=(向量名称,点集名称,浙江GDP数值,浙江x坐标,浙江y坐标,是否亮晶晶)
此时谢老师案例中要加入广东、江苏、山东三个省份的点,于是先构成一个data.frame名字叫top3的数据框,注意series以及Prov是字符型。
在函数中,echartR(...,markPoint=top3)调用markPoint即可,还是一样加点的数据整理麻烦,调用很快。
4、世界地图
贴一下需要的数据结构以及函数中与前面中国省份不同之处即可。
世界地图举例的数据很简单,一目了然。下面的函数也很中国地图主要不同之处:type=c("map","world","area")。以下为压缩代码,详情请看谢老师主页。
echartR(worldgdp, x = ~country, y = ~GDP, type=c('map','world','area'))
——————————————————————————————
三、点标注
跟区域不同的地方,就是要加入点的坐标(x,y),贴一下数据结构以及函数的不同之处
如果要加点markPoint,数据结构变成下面的图中所示的一样,注意name,city是字符型,effect代表是否有酷炫特效。
函数的不同之处,主要在typle=c("map","china","point"),以下代码为省略版,只是为了看出不同的,详细的回看谢老师的主页。
echartR(chinapm25, x=~City, y=~PM25, xcoord=~xcoord, ycoord=~ycoord,
type=c('map','china','point'),markPoint=top5)
——————————————————————————————
四、线标注
数据结构如下图,又多了from(起点),to(终点).
线标注地图比较特殊,数据集要包括y(数量)、x(起点地名)、x1(终点地名)、series(数据系列)、xcoord(起点纬度)、ycoord(起点经度)、xcoord1(终点纬度)、ycoord1(终点经度)。额外标注的话,makeline格式进行了扩充
图中的数据y为空值,说明该线路默认只有一条航班。
加点的数据格式为:
加线格式:
函数为没啥大区别。
echartR(flight, x=~From, x1=~To, y=~y, series=~From, xcoord=~Xcoord.x, ycoord=~Ycoord.x,
xcoord1=~Xcoord.y, ycoord1=~Ycoord.y, type=c('map','china','line'),
pos=list(toolbox=3), title="南方航空公司主要航班线路",markPoint=Tier1)
延伸,要实现以下的内容,需要实现以下几步:
设置主题暗色系、设置新的点数据makepoint、线数据makeline
笔者在自己玩的时候,出现了一个问题,
设置好数据之后,左下角的high-low坐标尺度,一直维持在很高的水平,所以地图中只有一种颜色。
——————————————————————————————
延伸一:R语言百度地图接口包
参考CSDN博客:R语言百度地图接口包
1、下载地址
http://download.csdn.net/detail/trueman007/7944319
2、安装方法:
install.packages('你的目录/RbaiduMaps_0.1.tar.gz', type='source')
3、运行方法:
library('RbaiduMaps')
4、简单画地图:
library(png)
mp<-GetMapBD("上海",size=c(640,640),zoom=10)
PlotOnStaticMapBD(mp)
R语言学习笔记︱Echarts与R的可视化包——地区地图的更多相关文章
- R语言学习笔记:小试R环境
买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...
- R语言学习笔记:使用tcltk包显示进度条
一般在跑耗时较长的程序时,我们不知道程序到底有没有正常跑着,或者在爬虫的时候不知道爬到什么时候断了.因此可以添加进度条来显示当前进度,观察进度是否有进展.当进度条卡住的时候,可以判断程序断线,从而可以 ...
- R语言学习笔记—K近邻算法
K近邻算法(KNN)是指一个样本如果在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.即每个样本都可以用它最接近的k个邻居来代表.KNN算法适 ...
- R语言学习笔记(二十一五):如何如何提升R语言运算的性能以及速度
在R中获得快速运行代码的方法 使用向量化运算 R语言的并行计算可以用parallel和foreach包 加快R运行速度还可以使用cmpfun()函数即字节码编译器 再者就是在R中调用C或C++ 同时还 ...
- R语言学习笔记1——R语言中的基本对象
R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...
- R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...
- R语言学习笔记(二)
今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...
- R语言学习笔记:基础知识
1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...
- R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...
随机推荐
- [SF] Symfony 组件 BrowserKit 原理
直接看下面的注释中针对每一个文件的作用说明. <?php /** * BrowserKit - Make internal requests to your application. * * I ...
- FC经典游戏还原之:松鼠大作战2
版权声明:本文原创发布于博客园"优梦创客"的博客空间(id:raymondking123) 原帖地址:http://www.cnblogs.com/raymondking123/p ...
- Ubuntu16.04下伪分布式环境搭建之hadoop、jdk、Hbase、phoenix的安装与配置
一.准备工作 安装包链接: https://pan.baidu.com/s/1i6oNmOd 密码: i6nc 环境准备 修改hostname: $ sudo vi /etc/hostname why ...
- 所不为人知的Python装饰器
装饰器可以说是Python中非常重要的特性之一.有些人要么从没使用过装饰器,要么就是对装饰器的使用一知半解.也有些人觉得装饰器很简单:"装饰器不就是那些把函数作为参数并输出一个函数的函数&q ...
- jboss7.1.1相关error及解决办法
问题1: 报错提示: 公司的网站系统使用的中间是jboss7.1.1 Final,由于有些数据和服务测试环境不具备,免不了要在测试环境调试些jsp页面,发现从jboss社区里下载的jboss应用有个问 ...
- 洛谷 [P1129] [ZJOI2007] 矩阵游戏
这竟然是一道二分图 乍一看,可能是用搜索做,但是这个数据范围,一定会T. 我们观察发现,无论怎样变换,同一行的一定在同一行,同一列的一定还在同一列.所以说,一行只能配一列.这样,我们的目标就是寻找是否 ...
- POJ 3683 Priest John's Busiest Day[2-SAT 构造解]
题意: $n$对$couple$举行仪式,有两个时间段可以选择,问是否可以不冲突举行完,并求方案 两个时间段选择对应一真一假,对于有时间段冲突冲突的两人按照$2-SAT$的规则连边(把不冲突的时间段连 ...
- bind,apply,call区别总结
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序
DMSkin-for-WPF是一个基于WPF的.Net WPF开源界面库,实现了无边框的WPF开发方案,内置部分控件模板. 你可以参照模板自行修改完善.(以下简称DFW). 核心 DFW实现了比较完美 ...
- 较复杂makefile跟lds脚本程序的编写
首先看个makefile范例: /*指明工具链,并为其取个简单的别名*/ CC = arm-linux-gcc LD = arm-linux-ld AR = arm-linux-ar OBJCOPY ...