中国统计网

登录

首页

分类浏览

专题

专栏作者

问答

线下活动

企业招聘

app下载

投稿

注册




实战:R环境下Echart的8种可视化
头像 飘雪 数据仓库
数据仓库

总结一下2016年5月29日数据科学家训练营R语言课程中Echart学习成果,也把上课用Echart做的图表及脚步代码和大家分享。先讲下大概的内容,方便大家上手~



QQ截图20160531103723.png


数据源


数据源见云盘:https://yunpan.cn/cSGKXSqYMGULs  访问密码 ea56


ECHART 安装(R-3.3.0测试可用)3/3


install.packages('devtools')

library(devtools)

install_github('yihui/recharts')   ##全局设定

Sys.setlocale("LC_CTYPE","Chs")

source("F:\\ORE\\2.ORESERVER\\oreSCRIPT\\ECHART\\echartR.R")   ##全局设定

install.packages('knitr')

library(knitr)

knitr::opts_chunk$set(message=FALSE,warning=FALSE,results='asis')


读取数据及数据预处理


#数据集说明:汽车贷款违约数据

#使用的变量N:数值变量/T:因变量

##[N]fico_score信用评分

##[N]purch_price 汽车价格

##[N]loan_amt  贷款金额

##[T]bad_ind    是否违约

#读取数据与数据预处理

setwd("F:\\数据脚本课件\\数据")

data=read.csv('accepts.csv')

data$bad_ind=as.factor(data$bad_ind)

data$bankruptcy_ind=as.factor(data$bankruptcy_ind)

data$used_ind=as.factor(data$used_ind)

#缺失值填补(均值/众数填补)

#定义缺失值填补函数

tianbu=function(data){

for (i in 1:ncol(data)){

  if (sum(is.na(data[,i]))!=0){

    if (class(data[,i])=='factor'){

     a=(as.data.frame(table(data[,i])))

     b=as.numeric(max(mode))

     mode=as.character(a[which(a$Freq==b),1])

     data[which(is.na(data[,i])=='TRUE'),i]=mode[1]

    } #因子使用众数填补

    else {

      data[which(is.na(data[,i])=='TRUE'),i]=mean(data[,i],na.rm=T)

    } #非因子使用平均数填补

  }

  else 

    warning(paste('变量',colnames(data)[i],'无缺失无需填补',sep=''))}

}

#进行填补

tianbu(data=data)

data

warnings()



1.多系列散点图


#echart语法见https://github.com/madlogos/recharts

#标注线(标注线性归回拟合线)

Line=t(c(1,'lm',"lm",F))

#标注点(标注两个异常值点)

Points=rbind(c(1,NA,1,111696,111166,F),c(1,NA,2,63700,28700,F))

#横纵轴设定

x=list(lab='汽车金额',color='blue',rotate=45)

y=list(lab='贷款额',color='blue',rotate=45)

#制图

echartR(data = data, x = ~purch_price, y = ~loan_amt,

        type = 'scatter', palette='aetnaorange',

        title = '散点图-汽车金额vs贷款额', 

        subtitle = "(source: 汽车贷款数据)",

        xAxis = x, yAxis = y,

        markLine=Line,

        markPoint=Points)


图形展示如下:


QQ截图20160531103732.png


动态图见连接:

http://localhost:31357/session/viewhtmlcfc382479f9/index.html



2.多系列散点图


#标注点(标注两个异常值点)

Points=rbind(c(2,NA,1,760,96692,F),c(1,NA,2,632,111554,F))

#横纵轴设定

x=list(lab='信用评分',color='blue')

y=list(lab='贷款额',color='blue')

#制图

echartR(data = data, x = ~fico_score, y = ~loan_amt, series = ~bad_ind,

        type = 'scatter', palette='aetnaorange', symbolList='circle',

        scale=F, xAxis = x,yAxis = y,

        title = '多系列散点图-信用评分vs贷款额', 

        subtitle = "(source: 汽车贷款数据)",

        markPoint=Points)


图形展示如下:


QQ截图20160531103739.png


动态图链接:

http://localhost:31357/session/viewhtmlcfc328666f2/index.html



3. 气泡图


#数据集说明:中国各省人口GDP和人均寿命数据

#使用的变量N:数值变量

#Prov:省份

#GDP:GDP

#LIFE:平均寿命

#POPULATION:人口

#读取数据

China=read.csv('gdp.csv')

#Bubble 气泡图

echartR(data = China, x = ~Life, y = ~GDP, 

        weight =Population, series = ~Prov, 

        symbolList=c('circle'), 

        type = 'bubble', palette='aetnaorange',

        title = '部分省人均寿命-GDP-人口', 

        subtitle = '(source: GDP)', xlab = '平均寿命', ylab = 'GDP',

        pos=list(title=6,toolbox=3))


图形展示如下:


QQ截图20160531103746.png


动态图链接:

http://localhost:31357/session/viewhtmlcfc781586d/index.html



4.柱状图


library(reshape2)

#数据描述:某化妆品公司数据集

#dis:大区(series)

#type:产品名(x)

#amount销量(y)

#读取数据与数据预处理

setwd("F:\\数据脚本课件\\数据")

data=read.csv('col.csv')

#Tiled Column柱状图

echartR(data = data, x = ~type, y = ~amount,  

        series = ~dis,stack=F,

        type = 'bar', palette='aetnaorange',

        title = "大区-产品-销量柱状图", 

        subtitle = '(source: col)',

        xlab = 'Parameter', ylab = '销售额')


图形展示如下:


QQ截图20160531103753.png


动态图链接:

http://localhost:31357/session/viewhtmlcfc4981968/index.html



5.饼图


#数据准备

setwd("F:\\数据脚本课件\\数据")

data=read.csv('col.csv')

#1.ECHART PIE 饼图

echartR(data, x = ~type,  y = ~amount, type='pie',

        palette='aetnaorange', 

        title='化妆品产品饼图',

        subtitle = '(source: col)')


图形展示如下:


QQ截图20160531103759.png


动态图链接:

http://localhost:31357/session/viewhtmlcfc4ca6c45/index.html



6.环图


echartR(data, x = ~type,  y = ~amount, type='ring',

        palette='aetnaorange', 

        title='化妆品产品饼图',

        subtitle = '(source: col)')


图形展示如下:


QQ截图20160531103815.png


动态图链接:

http://localhost:31357/session/viewhtmlcfc67d01c83/index.html



7.地图


#数据准备

setwd('F:\\数据脚本课件\\数据')

dtgdp1=read.csv('CHINA-GDP-12-14.csv')[2:4]


#区域标注

echartR(dtgdp1, x = ~Prov, y = ~GDP, series= ~Year, 

        type=c('map','china','area'),

        title="title",

        subtitle='(source: title)',

        dataRangePalette='heat(5)',

        dataRange=c('High',"Low"),splitNumber=5,

        pos=list(toolbox=3))

#区域标注

worldgdp=data.frame(

  country=c('United States of America','China','Japan','Germany',

            'United Kingdom','France','Brazil', 'Italy','India','Russia',

            'Canada','Australia','South Korea','Spain','Mexico','Indonesia',

            'Netherlands','Turkey','Saudi Arabia','Switzerland'),

  GDP=c(17418925,10380380,4616335,3859547,2945146,2846889,2353025,2147952,

        2049501,1857461,1788717,1444189,1416949,1406855,1282725,888648,866354,

        806108,752459,712050))


echartR(worldgdp, x = ~country, y = ~GDP, type=c('map','world','area'),

        title="Nations with top 20 GDPs, 2014 (Million USD)",

        subtitle = '(source: Wikipedia)',

        dataRangePalette='heat(5)', dataRange=c("High","Low"), 

        splitNumber=10, pos=list(toolbox=3))


图形展示如下:



QQ截图20160531103815.png


动态图链接:


http://localhost:31357/session/viewhtmlcfc73be3b89/index.html

http://localhost:31357/session/viewhtmlcfc66dc5ced/index.html



#Point 点标注

#数据读取

chinapm=read.csv('chinapm25.csv',stringsAsFactors=F,header=T,sep=',')[,2:5]

#点标注

top5=head(chinapm[order(chinapm$PM,decreasing=T),],5)

top5$Name="Top 5"

top5$effect=T

top5=top5[,c(5,1,2,4,3,6)]

#制图

echartR(chinapm, x=~City, y=~PM25, xcoord=~xcoord, ycoord=~ycoord,

        type=c('map','china','point'),

        title='中国各市PM2.5情况',

        subtitle="(source: chinapm)",

        dataRange=c("High","Low"), pos=list(toolbox=3), 

        dataRangePalette='heat(7)',

        splitNumber=7,

        markPoint=top5)


图形展示如下:


QQ截图20160531103823.png


动态图链接:

http://localhost:31357/session/viewhtmlcfc36cf1824/index.html


#Line 线标注

flight=read.csv('flight.csv',stringsAsFactors=F,header=T,sep=',')

flight$y=''

names(flight)

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="南方航空公司主要航班线路")


图形展示如下:


QQ截图20160531103829.png


图形链接:

http://localhost:31357/session/viewhtmlcfc6518ec5/index.html



8.词云


#获取数据

setwd("F:\\数据脚本课件\\数据")

santi=read.csv('santi.csv')

santi

#构建词云

echartR(santi[1:30,], x=~word, y=~TFIDF, type="wordcloud", 

title="《三体》特征词", palette='aetnaorange', 

subtitle="来源:三体")


图形展示如下:


QQ截图20160531103837.png


动态图链接:

http://localhost:31357/session/viewhtmlcfc6e7cdef/index.html



9.力导向布局图


setwd('F:\\数据脚本课件\\数据')

wujiandao=read.csv('netLink.csv',stringsAsFactors=F)

echartR(wujiandao,

        x=~Link,

        y=~weight,

        x1=~NodeVal,

        series=~Series,type='force',

        title='无间道',

        pos=list(title=5,legend=10),

        palette=c('orange','lightblue','orange','lightblue','orange','lightblue'))


图形展示如下:


QQ截图20160531103844.png


动态图链接:


http://localhost:31357/session/viewhtmlcfc29f8671/index.html



来源:CDA数据分析研究院曾珂提供,刘春娇整理

我要评论
验证码
  • 2
作者头像 Autumn_3
云盘数据链接失效了,楼主能再发一次吗?多谢!
作者头像 匿名评论
云盘失效了,请楼主再发一次

关注公众号

中国统计网微信公众号

微信公众号:cntongji

今日热议

专栏作者

  • 傅一平
    统计网特邀认证作者
    浙江移动大数据中心 数据管理部经理 博士 毕业于浙江大学 10多年数据从业经验,专注于大数据采集、处理、建模、管理、变现及产业等研究
  • 黄成明
    统计网特邀认证作者
    黄成明 ,零售数据分析研究者,拥有15年的销售及数据分析经验,历经美国强生公司、妮维雅公司、雅芳公司和鼎盛时期的诺基亚公司。目前是数据化管理的咨询顾问和培训师。他独立研发了基于周销售权重指数的零售管理模型,可以有效地进行目标管理、销售预测、客流预估、促销评估、销售预警等。
  • 秦路
    统计网特邀认证作者
  • tommy
    统计网特邀认证作者
    数据落地应用探索者
  • 数据海洋
    统计网特邀认证作者
    数据应用的实践者!
  • 张溪梦
    统计网特邀认证作者
    GrowingIO创始人&CEO,前LinkedIn商务分析总监
立即下载
版权所有: 统计网. Copyright © 2016 itongji.cn All Rights Reserved. 备案号:ICP备15042641号-3