雷达图一般被用来比较多个定量变量中哪些变量具有相似数值,或者每个变量中有没有任何异常值。此外,雷达图也可用于查看数据集中哪些变量得分较高/低,是显示性能表现的理想之选。
使用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包绘制的雷达图更加便捷。
|