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-

——————————————————————————————

一、基本语法

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坐标尺度,一直维持在很高的水平,所以地图中只有一种颜色。

时间: 2024-08-26 10:42:07

R语言学习笔记︱Echarts与R的可视化包——地区地图的相关文章

R语言学习笔记2——绘图

R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, 60)> drugB <- c(15, 18, 25, 31, 40) > plot(dose, drugA, type="b") > plot(dose, drugB, type="b") 该例中,我们引入了R语言中第一个绘图函数plot.pl

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

R语言学习笔记 之 可视化地研究参议员相似性

基于相似性聚类 很多时候,我们想了解一群人中的一个成员与其他成员之间有多么相似.例如,假设我们是一家品牌营销公司,刚刚完成了一份挂怒有潜力新品牌的研究调查问卷.在这份调查问卷中,我们向一群人展示了新品牌的几个特征,并且要求他们对这个新品牌的每个特征按五分制打分.同时也收集了目标人群的社会经济特征,例如:年龄.性别.种族.住址的邮编以及大概的年收入. 通过这份调查问卷,我们想搞清楚品牌如何吸引不同社会经济特征的人群.最重要的是,我们想要知道这个品牌是否有很大的吸引力.换个角度想这个问题,我们想看看

R语言学习笔记(二十一五):如何如何提升R语言运算的性能以及速度

在R中获得快速运行代码的方法 使用向量化运算 R语言的并行计算可以用parallel和foreach包 加快R运行速度还可以使用cmpfun()函数即字节码编译器 再者就是在R中调用C或C++ 同时还可以利用Rprof()来寻找代码的瓶颈 利用分块或者R包来管理内存 原文地址:https://www.cnblogs.com/xihehe/p/8318919.html

R语言学习笔记—K近邻算法

K近邻算法(KNN)是指一个样本如果在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.即每个样本都可以用它最接近的k个邻居来代表.KNN算法适合分类,也适合回归.KNN算法广泛应用在推荐系统.语义搜索.异常检测. KNN算法分类原理图: 图中绿色的圆点是归属在红色三角还是蓝色方块一类?如果K=5(离绿色圆点最近的5个邻居,虚线圈内),则有3个蓝色方块是绿色圆点的"最近邻居",比例为3/5,因此绿色圆点应当划归到蓝色方块一类:如果

R语言学习笔记(二)

今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") > head(mtcars[vars]) mpg hp wt Mazda RX4 21.0 110 2.620 Mazda RX4 Wag 21.0 110 2.875 Datsun 710 22.8 93 2.320 Hornet 4 Drive 21.4 110 3.215 Hornet Sportab

R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理

前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. 这次的主题是论R与excel的结合,又称 论如何正确把EXCEL文件喂给R处理 分为: 1. xlsx包安装及注意事项 2.用vba实现xlsx批量转化csv 以及,这个的对象,针对跟我一样那些从R开始接触编程的,一直以来都是用excel做数据分析的人……编程大牛请轻拍 之所以要研究这个,是因为最近工作上接了个活,要把原来在excel端的报表迁移到R端,自动输出可视化图形,并制作PDF或PPT. 这个活可以分为

R语言学习笔记:基础知识

1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) 表示把1 - 100的所有数字都给x这个变量 5.查看x的类型:>mode(x) 6.查看x的长度:>length(x) 7.将两个向量组成一个矩阵: >rbind(x1, x2)  注:r是row的意思,即行,按行组成矩阵. >cbind(x1, x2)  注c是column的意思,

R语言学习笔记——日期时间处理

一.在利用R语言实际工作中,我们经常需要将字符串转换成时间,或者将时间转化成字符串,R语言和其他语言一样,你要告诉它如何转化?也就是告诉它format,它就可以正常的转化,但是在实际中,我碰到了一下几个很难注意的问题,先总结如下: 计算机如何理解日期:日期格式(也就是Date)表示为自1970年1月1日相对的数量,较1970-01-01更早的日期表示负值.(大部分语言都是这么处理的) 大部分语言有默认的日期格式,只要按照这个日期格式去转换字符串,计算机就能正确识别.如下: <span style