分享

R语言绘图:六、类别变量:雷达图

 imtravelinghah 2022-09-24 发布于广西

雷达图一般被用来比较多个定量变量中哪些变量具有相似数值,或者每个变量中有没有任何异常值。此外,雷达图也可用于查看数据集中哪些变量得分较高/低,是显示性能表现的理想之选。

使用ggplot2绘制雷达图,使用geom_polygon() 函数或者 geom_path()函数,同时借助 coord_polar() ,可以实现图带平滑线的圆形雷达图。

首先构建数据集:

course_data1=data.frame(
  student=paste0("Student",1:3),
  Language=c(85,71,99),
  Math=c(90,50,82),
  English=c(77,90,85),
  Physics=c(89,67,78),
  Chemistry=c(78,88,60),
  Biology=c(89,60,80)
  )
course_data2=data.frame(
  course=c("Language","Math","English","Physics","Chemistry","Biology"),
  id=c(1:6),
  student1=c(85,90,77,89,78,89),
  student2=c(71,50,90,67,88,60),
  student3=c(99,82,85,78,60,80)
)
AddRow=c(NA,nrow(course_data2)+1, course_data2[1,(ncol(course_data2)-2):ncol(course_data2)])
data2=rbind(course_data2,as.numeric(AddRow))
> course_data1;course_data2
   student Language Math English Physics chemistry Biology
1 Student1       85   90      77      89        78      89
2 Student2       71   50      90      67        88      60
3 Student3       99   82      85      78        60      80
     course id student1 student2 student3
1  Language  1       85       71       99
2      Math  2       90       50       82
3   English  3       77       90       85
4   Physics  4       89       67       78
5 chemistry  5       78       88       60
6   Biology  6       89       60       80
library(ggplot2)
ggplot(data=data2,aes(x=id, y=student1)) +
  geom_polygon(color = "black", fill= "#E41A1C",alpha=0.1)+
  geom_point(size=5,shape=21,color = 'black', fill= "#E41A1C")+
  coord_polar() +
  scale_x_continuous(breaks =course_data2$id,labels=course_data2$course)+
  ylim(50,100)+
  theme_light()+
  theme(axis.text.x=element_text(size = 11,colour="black"))

当需要绘制多个变量的时候,就需要叠加图层了。

ggplot(data=data2,aes(x=id)) +
  geom_polygon(aes(y=student1),color = "black", fill= "#ffd200",alpha=0.1)+
  geom_point(aes(y=student1, fill= "#ffd200"),size=5,shape=21,color = 'black',fill= "#ffd200")+
  geom_polygon(aes(y=student2),color = "black", fill= "#304156",alpha=0.1)+
  geom_point(aes(y=student2, fill= "#304156"),size=5,shape=21,color = 'black', fill= "#304156")+
  geom_polygon(aes(y=student3),color = "black", fill= "#f8766d",alpha=0.1)+
  geom_point(aes(y=student3, fill= "#f8766d"),size=5,shape=21,color = 'black', fill= "#f8766d")+
  coord_polar() +
  scale_x_continuous(breaks =course_data2$id,labels=course_data2$course)+
  ylim(50,100)+
  theme_light()+
  theme(axis.text.x=element_text(size = 11,colour="black"))+
  xlab("")+ylab("")

其实在R语言中,绘制雷达图的包主要为fmsb包和ggradar包,这里我们只介绍使用ggradar包绘制雷达图。

#devtools::install_github("ricardo-bion/ggradar", dependencies=TRUE)
library(ggradar)
#雷达图3
ggradar(course_data1[1,],
        values.radar = c("0", "50", "100"),
        grid.min = 0, grid.mid = 50, grid.max = 100)

同样可以绘制多个变量的。

ggradar(
  course_data1,
  values.radar = c("0", "50", "100"),
  grid.min = 0, grid.mid = 50, grid.max = 100,
  group.line.width = 1,
  group.point.size = 3,
  group.colours = c("#ffd200", "#304156", "#f8766d"),
  background.circle.colour = "white",
  gridline.mid.colour = "grey",
  legend.position = "bottom"
)

可以看出用ggplot2绘制雷达图还是比较麻烦的,相比而言使用ggradar包绘制的雷达图更加便捷。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多