雷达图
2018-09-03
2018-09-03
1 雷达图
雷达图,又称戴布拉图、蜘蛛网图。它是财务分析报表可视化的一种。
雷达图能显示出各项变量指标所得的数字或比率,将比较重要的项目集中划在一个圆形的图表上,以此体现出指标比率的重要占比情况,使用者能一目了然的了解各项指标的变动情形及其好坏趋向。
1.1 雷达图得分
雷达图中,数值越靠在外侧的,得分越高,表示该项因素较为重要突出。
library(fmsb) #加载包
maxmin<-data.frame( part1=c(50, 0),
part2=c(50, 0),
part3=c(50, 0),
part4=c(50, 0),
part5=c(50, 0)) # 设置雷达图的轴距
a<-data.frame(part1=50,
part2=20,
part3=15,
part4=10,
part5=5) # 取每个变量的值,转换为数据框
a<-rbind(maxmin,a) ##合并maxmin,a的数据
radarchart(a,axistype=0, seg=5,centerzero = TRUE)##绘制雷达图
对于包括part1-5个方面进行评分,从雷达图可以看出:评分最高的为第1部分为50分,得分最低的为第5部分,分数为5分。
1.2 雷达图的性能比较
a1<- data.frame(
part1=c(50,20),
part2=c(20,40),
part3=c(15,20),
part4=c(10,12),
part5=c(5,8))#设置数据框
a1<-rbind(maxmin,a1)#合并数据
radarchart(a1, axistype=0, seg=5,centerzero = TRUE)#绘制雷达图
黑色和红色进行比较,黑色的在part1较为突出,红色的在part2较为突出。
1.3 多个雷达图对比
maxmin <-data.frame(
total=c(5,1),
phys=c(15,3),
psycho=c(3,0),
social=c(5,1),
env=c(5,1))#转换数据框
dat <-data.frame(
total=runif(3,1,5),
phys=rnorm(3,10,2),
psycho=c(0.5,NA,3),
social=runif(3,1,5),
env=c(5,2.5,4))#转换数据框
dat <-rbind(maxmin,dat)#数据合并
seg每个轴的分段,默认为4段;plty线的类型;title标题;vlabels标签;axistype绘制坐标轴标签,值取0-5,0为无标签,1只有中心轴标签,vlcex字体大小。
dataframeAdding = function(dataframe){#转换数据框
myMax = c()
myMin = rep(1,ncol(dataframe))#设定数据
for (i in (1:ncol(dataframe)))
myMax[i] = max(dataframe[,i])
result = rbind(myMax, myMin, dataframe)
return(result)
}
dt = data.frame(A = c(321,77,142,270), B = c(290,200,400,100), C = c(24,150,42,75), D = c(122,72,322,12), E = c(450,220,410,300))
result = dataframeAdding(dt) # 画蜘蛛图的要求,数据框的第一行作为图的最大值,第二行作为图的最小值
op <- par(mar = c(1,2,2,1),mfrow = c(2,2)) #用于显示多个图形
radarchart(result,axistype = 0,plwd = 1:5,pcol = 1,title = "(axistype=0, plwd=1:5, pcol=1)")#绘图,设置参数
radarchart(result,axistype = 1,seg = 5,plty = 1,title = "(axistype=1, seg=5, plty=1)")#绘图,设置参数
radarchart(result,axistype = 2,pcol = topo.colors(6),plty = 1,title = "(axistype=2, pcol=topo.colors(6), plty=1)")#绘图,设置参数
radarchart(result,axistype = 3,pty = 32,plty = 1,axislabcol = "grey",na.itp = FALSE,title = "(axistype=3, pty=32, plty=1, axislabcol=\"grey\", na.itp = FALSE)")#绘图,设置参数
1.4 雷达图应用
雷达图在生活中的应用常在判断变量变化趋势程度,凸显出变量的重要性。
library("fmsb")
radarfig <- rbind(rep(90, 4), rep(60, 4), c(86.17, 73.96, 82.70, 69.55)) #求平均值
radarfig <- as.data.frame(radarfig) #转化为data.frame
library("fmsb")
radarfig <- rbind(rep(90, 4), rep(60, 4), c(86.17, 73.96, 82.70, 69.55)) #求平均值
radarfig <- as.data.frame(radarfig) #转化为data.frame
colnames(radarfig) <- c( "游戏装备 \n完备度", "经验技术 \n成熟度",
"游戏反应 \n准确度", "4G网络 \n覆盖度")
radarchart(radarfig, axistype=1, pcol=rgb(91,155,213,155,maxColorValue = 255) ,
pfcol=rgb(91,155,213,155,maxColorValue = 255) , plwd=4 ,
cglcol="black", cglty=1, axislabcol="black", caxislabels=seq(60,90,5),
cglwd=1, vlcex=0.6
)
上图表示的是在游戏角色中,对游戏的因素指标进行分析。可以看出游戏装备因素非常重要,因此初步认为游戏的重要性指标是游戏装备。
maxmin=data.frame(
英语=c(35,0),
数学=c(35,0),
语文=c(35,0),
政治=c(35,0),
历史=c(35,0),
地理=c(35,0))##设置雷达图轴距
dat.A=data.frame(
英语=18,
数学=18,
语文=20,
政治=17,
历史=12,
地理=12)##取每个变量的最小值
dat.A2=rbind(maxmin,dat.A)##合并maxmin,dat.A数据
radarchart(dat.A2, axistype=1, pcol=rgb(91,155,213,155,maxColorValue = 255) ,
pfcol=rgb(91,155,213,155,maxColorValue = 255) , plwd=4 ,
cglcol="black", cglty=1, axislabcol="black", caxislabels=seq(60,90,5),
cglwd=1, vlcex=0.8
)
从学科成绩反馈看,语文的重要性高于其他学科,其次是数学和英语的影响程度高。
2 本章汇总
***
参数 | 类别 | 功能 |
---|---|---|
fmsb | 函数包 | 加载雷达图数据包 |
radarchart | 函数 | 绘制雷达图 |
data.frame | 数据框 | 建立数据框 |
plwd | 参数 | 线形宽度 |
plty | 参数 | 线型 |
title | 参数 | 图形标题 |
axistype | 参数 | 文字种类 |
pcol | 参数 | 颜色 |