笔者寄语:感谢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

注意:本加载包仍在开发完善中。recharts基于百度Echarts2的最后一个稳定发布版(v2.2.7)开发。本文档始终反映recharts最新的特性(Github)。安装方法:
if (!require(devtools)) library(devtools)
install_github("madlogos/recharts")

1 知识地图Knowledge Map

  1. 基本图类
    1. 单个坐标系
      1. 直角坐标系
        1. 散点图Scatter/气泡图Bubble Plot
        2. 条图Bar/柱图Column Chart
        3. 线图Line/面积图Area Chart
        4. 蜡烛图/K线图Candlestick/K Chart
        5. 事件河流图Event River Chart
      2. 其他
        1. 力导向布局图Force Chart
        2. 和弦图Chord Chart
        3. 词云Word Cloud
        4. 韦恩图Venn Chart
        5. 热力图Heatmap
    2. 多个坐标系
      1. 极坐标系
        1. 饼图Pie/环状图Ring/玫瑰图Rose Chart
        2. 漏斗图Funnel/金字塔图Pyramid Chart
        3. 雷达图Radar Chart
        4. 仪表盘Gauge Chart
      2. 其他
        1. 地图Map
        2. 树图Tree Chart
        3. 矩形树图Treemap
  2. 混合图类
  3. 坐标轴/控件配置
    1. 调整数据系列
      1. 设置系列setSeries
    2. 坐标轴/制图区
      1. 设置坐标轴setAxis
      2. 设置极坐标系setPolar
      3. 设置绘图区setGrid
    3. 图形元件
      1. 添加标注线addMarkLine
      2. 添加标注点addMarkPoint
    4. 控件
      1. 设置标题setTitle
      2. 设置图例setLegend
      3. 设置时间轴setTimeline
      4. 设置工具箱setToolbox
      5. 设置值域选择setDataRange
      6. 设置缩放漫游setDataZoom
      7. 设置地图漫游setRoam
    5. 样式特性
      1. 样式aesStyle
  4. 美工
    1. 设置提示框setTooltip
    2. 设置符号setSymbols
    3. 设置主题setTheme
  5. 定制化

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

一、基本语法

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的可视化包——地区地图的更多相关文章

  1. R语言学习笔记:小试R环境

    买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...

  2. R语言学习笔记:使用tcltk包显示进度条

    一般在跑耗时较长的程序时,我们不知道程序到底有没有正常跑着,或者在爬虫的时候不知道爬到什么时候断了.因此可以添加进度条来显示当前进度,观察进度是否有进展.当进度条卡住的时候,可以判断程序断线,从而可以 ...

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

    K近邻算法(KNN)是指一个样本如果在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.即每个样本都可以用它最接近的k个邻居来代表.KNN算法适 ...

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

    在R中获得快速运行代码的方法 使用向量化运算 R语言的并行计算可以用parallel和foreach包 加快R运行速度还可以使用cmpfun()函数即字节码编译器 再者就是在R中调用C或C++ 同时还 ...

  5. R语言学习笔记1——R语言中的基本对象

    R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...

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

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...

  7. R语言学习笔记(二)

    今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...

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

    1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...

  9. R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...

随机推荐

  1. .NET框架(转)

    三年前写的<.NET之美>的第六章,现在书名改为了<.NET专题解析>. 本书是一本讲解.NET技术的书籍,目标读者群也是在.NET框架(.NET Framework)下进行开 ...

  2. 安装linux下面用来配置网络,防火墙,系统服务等设置的图形小工具Setup

    Setup命令是linux下面用来配置网络,防火墙,系统服务等设置的图形小工具.使用起来非常方便简单,可是centos\redhat最小化安装之后发现setup命令工具用不了. 接下来介绍如何安装se ...

  3. 《Thinking in Java》学习笔记(一)

    服务器端的编程可以参考另一本书<企业Java编程>(Thinking in Enterprise Java). 1.基本类型 基本型别 大小 最小值 最大值  默认值 boolean -- ...

  4. UCS业务知识介绍

    企业融合网关是集路由.交换.防火墙.VPN.IP PBX等功能于一体的综合性设备,满足企业语音.数据.网络安全等业务需求. UCS融合网关设备则是设备厂商在企业融合网关的基础上进一步提出的融合通信设备 ...

  5. 闭包和es6实现循环绑定li输出固定索引值

    首先我们需要一个html结构 <div > <ul> <li>a</li> <li>a</li> <li>a< ...

  6. PLECS—晶闸管-第九周

    1. 单相桥式晶闸管整流电路仿真 (1)仿真电路图 (2)触发角为pi/4的手工波形图(参数设置,触发角=pi/4, 电感L = 0H) (2)模拟仿真波形图 1)参数设置:触发角=pi/4, 电感L ...

  7. Jenkins配置备份恢复插件ThinBackup

    一.系统管理-管理插件-找到ThinBackup并安装 二.系统管理-找到ThinBackup-点击Setting进行设置 第一个参数备份目录是必选,其它可选,点保存. 三.保存后返回到ThinBac ...

  8. LNMP搭建04 -- 配置Nginx支持PHP

    首先建立存放网页文件的目录,执行 mkdri /usr/local/server/www  然后进入到该目录中 cd /usr/local/server/www 然后创建一个测试文件: phpinfo ...

  9. Lua内存分析工具

    最近给公司写了一个lua内存分析工具,可以非常方便的分析出Lua内存泄露问题,有图形化界面操作,方便手机端上传快照等功能 内存分析我是在c语言端写的,也有人写过lua端的分析工具,也蛮好用的,不过lu ...

  10. Appium基于Python unittest自动化测试 & 自动化测试框架 -- PO并生成html测试报告

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...