用R语言画漂亮的雷达图
2021-08-18 本文已影响0人
小洁忘了怎么分身
0.R包安装
这个包放在了github上,要用devtools::install_github安装。
# install.packages("devtools")
# devtools::install_github("ricardo-bion/ggradar")
library(ggradar)
1.只画一组数据
df1 = data.frame(t(runif(5)))
colnames(df1) = paste0("A",1:5)
df1 = cbind(Group = "g1",df1)
df1
## Group A1 A2 A3 A4 A5
## 1 g1 0.8823214 0.8348358 0.4659534 0.2649459 0.0525377
ggradar(df1)
数据的第一列内容是不会被画进图里的,从第二列开始才画进去。注意数值范围都是0-1之间。
2.画多组数据
图上的每个分组是同一个颜色,连城同一个圈,对应着数据里的一行。
df <- data.frame(matrix(runif(30), ncol = 10))
df[, 1] <- paste0("G", 1:3)
colnames(df) <- c("Group", paste0("B", 1:9))
df
## Group B1 B2 B3 B4 B5 B6 B7
## 1 G1 0.3224440 0.7848074 0.2090255 0.6636700 0.7874981 0.5877474 0.6128037
## 2 G2 0.2188540 0.8422121 0.8268227 0.2957922 0.4840908 0.8431298 0.7573499
## 3 G3 0.6309596 0.6037139 0.3487656 0.5804829 0.6449426 0.6368727 0.1268017
## B8 B9
## 1 0.1907709 0.9116906
## 2 0.7381918 0.5124320
## 3 0.2331395 0.7559405
ggradar(df)
3.如果数值不是在0-1范围内
需要改改图上的中心和三条线的刻度咯。
df <- data.frame(matrix(sample(10:50,30), ncol = 10))
df[, 1] <- paste0("G", 1:3)
colnames(df) <- c("Group", paste0("B", 1:9))
ggradar(df,
centre.y = 5,
grid.min = 10,
grid.mid = 35,
grid.max = 50,
values.radar = c(10, 35, 50))
也可以将他们放到0-1范围内
顺便,背景颜色改成白色
df[,2:10] = df[,2:10]/50
df
## Group B1 B2 B3 B4 B5 B6 B7 B8 B9
## 1 G1 0.86 0.62 0.20 0.88 0.68 0.22 0.80 0.94 0.56
## 2 G2 0.32 0.90 0.74 0.30 0.98 0.28 0.84 0.42 0.40
## 3 G3 0.76 0.64 0.58 0.60 0.78 0.52 0.46 0.38 0.96
ggradar(df,background.circle.colour = "white")