总结一下2016年5月29日数据科学家训练营R语言课程中Echart学习成果,也把上课用Echart做的图表及脚步代码和大家分享。先讲下大概的内容,方便大家上手~
数据源
数据源见云盘:
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:😮pts_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)
图形展示如下:
动态图见连接:
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)
图形展示如下:
动态图链接:
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))
图形展示如下:
动态图链接:
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 = ‘销售额’😉
图形展示如下:
动态图链接:
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)’😉
图形展示如下:
动态图链接:
http://localhost:31357/session/viewhtmlcfc4ca6c45/index.html
6.环图
echartR(data, x = ~type, y = ~amount, type=’ring’,
palette=’aetnaorange’,
title=’化妆品产品饼图’,
subtitle = ‘(source: col)’😉
图形展示如下:
动态图链接:
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))
图形展示如下:
动态图链接:
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)
图形展示如下:
动态图链接:
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=”南方航空公司主要航班线路”😉
图形展示如下:
图形链接:
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’,
图形展示如下:
动态图链接:
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’😉)
图形展示如下:
动态图链接:
http://localhost:31357/session/viewhtmlcfc29f8671/index.html
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!