雷达图

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 参数 颜色