雷达图,也称蜘蛛图,可以同时展示多个变量的数量对比情况。本文利用fmsb库创建雷达图。
数据准备
要创建雷达图,数据需要满足一些约定:
- 需要展示在图上的每个变量需要有对应的数据列
- 第一行必须包含最大值
- 第二行必须包含最小值
- 第三及之后的行包含需要在雷达图上展示的数据
为了演示,下面代码的数据框包含每天光顾门店的客户数量信息。准备好数据之后,利用fmsb
库的radarchart()函数创建雷达图:
#create data
df <- data.frame(Mon=c(100, 0, 34, 25),
Tue=c(100, 0, 48, 55),
Wed=c(100, 0, 58, 46),
Thu=c(100, 0, 67, 67),
Fri=c(100, 0, 55, 49),
Sat=c(100, 0, 29, 30),
Sun=c(100, 0, 18, 20))
#view data
df
# Mon Tue Wed Thu Fri Sat Sun
# 1 100 100 100 100 100 100 100
# 2 0 0 0 0 0 0 0
# 3 34 48 58 67 55 29 18
# 4 25 55 46 67 49 30 20
library(fmsb)
radarchart(df)
自定义雷达图
可以使用下列参数自定义雷达图:
- pcol: 线调颜色
- pfcol: 填充颜色
- plwd : 线宽度
- cglcol: 网络颜色
- cglty: 网络线条类型
- axislabcol: 轴标签颜色
- caxislabels: 展示轴标签向量
- cglwd: 网络线条宽度
- vlcex: 分组标签大小
下面代码展示使用一些参数创建自定义雷达图:
areas <- c(rgb(1, 0, 0, 0.25),
rgb(0, 1, 0, 0.25),
rgb(0, 0, 1, 0.25))
radarchart(df,
axistype=1,
pcol='blue',
# pfcol=rgb(0.3,0.8,0.5,0.5),
pfcol=areas,
plwd=1,
cglcol='grey',
cglty=1,
axislabcol='black',
cglwd=0.6,
vlcex=1.2,
title='Customers per Day'
)
legend(x=1.5, y=1, legend = rownames(df[-c(1,2),]), bty = "n", pch=20 , col=areas,
text.col = "grey", cex=1.2, pt.cex=3)
rgb 函数的语法说明:
rgb(red, green, blue, alpha, names = NULL, maxColorValue = 1)
详细文档说明参见官网。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/121915334