基本图形绘制绘图绘画good code

用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")

部分代码参考自https://r-charts.com/ranking/ggradar/

上一篇 下一篇

猜你喜欢

热点阅读