码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-06-02 15:00:09      阅读:3657      评论:0      收藏:0      [点我收藏+]

标签:


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


技术分享




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

标签:

原文地址:http://blog.csdn.net/sinat_26917383/article/details/51540353

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!