前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原创 | 实战:R环境下Echart的8种可视化

原创 | 实战:R环境下Echart的8种可视化

作者头像
CDA数据分析师
发布2018-02-24 16:25:23
1.1K0
发布2018-02-24 16:25:23
举报
文章被收录于专栏:CDA数据分析师

本文由CDA数据分析研究院曾珂提供,刘春娇整理,版权私有,侵权必究,转载请注明出处。

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

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

代码语言:js
复制
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')

读取数据及数据预处理

代码语言:js
复制
#数据集说明:汽车贷款违约数据
#使用的变量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.多系列散点图

代码语言:js
复制
#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)

图形展示如下:

动态图见连接:

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

2.多系列散点图

代码语言:js
复制
#标注点(标注两个异常值点)

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)

图形展示如下:

动态图链接:

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

3. 气泡图

代码语言:js
复制
#数据集说明:中国各省人口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))

图形展示如下:

动态图链接:

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

4.柱状图

代码语言:js
复制
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 = '销售额')

图形展示如下:

动态图链接:

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

5.饼图

代码语言:js
复制
#数据准备
setwd("F:\\数据脚本课件\\数据")
data=read.csv('col.csv')
#1.ECHART PIE 饼图
echartR(data, x = ~type,  y = ~amount, type='pie',
        palette='aetnaorange', 
        title='化妆品产品饼图',
        subtitle = '(source: col)')

图形展示如下:

动态图链接:

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

6.环图

代码语言:js
复制
echartR(data, x = ~type,  y = ~amount, type='ring',

        palette='aetnaorange', 
        title='化妆品产品饼图',
        subtitle = '(source: col)')

图形展示如下:

动态图链接:

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

7.地图

代码语言:js
复制
#数据准备

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))

图形展示如下:

动态图链接:

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

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

代码语言:js
复制
#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)

图形展示如下:

动态图链接:

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

代码语言:js
复制
#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="南方航空公司主要航班线路")

图形展示如下:

图形链接:

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

8.词云

代码语言:js
复制
#获取数据
setwd("F:\\数据脚本课件\\数据")
santi=read.csv('santi.csv')
santi
#构建词云
echartR(santi[1:30,], x=~word, y=~TFIDF, type="wordcloud", 
title="《三体》特征词", palette='aetnaorange', 
subtitle="来源:三体")

图形展示如下:

动态图链接:

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

9.力导向布局图

代码语言:js
复制
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'))

图形展示如下:

动态图链接:

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档