R语言 数据框-->雷达图

kg7wmglp  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(164)

enter image description here如何将此数据框转换为雷达图?我很难理解max和min的用法。我希望亚当斯和Onuachu作为两个变量,并位于同一图中。
我试了雷达图(dat),它显示有非数值,所以我删除了“播放器”行,然后试了雷达图(df),然后奇怪的图表出现在照片中。

2ledvvac

2ledvvac1#

fmsb包中radarchart所需的数据结构有点特殊。首先,你可以保留球员名字,但必须将它们移到行名称中。其次,前两行应该包含最小值和最大值,其中最大值应该在第一行,最小值应该在第二行。来自文档:
如果maxmin为TRUE,则每个变量的最大值必须包含在第1行,最小值必须包含在第2行,实际数据应包含在第3行及其以下的行中。列(变量)的数量必须大于2。
使用一些假的示例数据来模拟真实的数据,您可以获得如下所示的预期结果:

set.seed(123)

dat <- data.frame(
  Player = c("A", "B", "Max", "Min"),
  Feature1 = c(runif(2, 0, 1), c(1, 0)),
  Feature2 = c(runif(2, 0, 2), c(2, 0)),
  Feature3 = c(runif(2, 0, 3),c(3, 0)),
  Feature4 = c(runif(2, 0, 4),c(4, 0)),
  Feature5 = c(runif(2, 0, 5), c(5, 0))
)

# Move max and min values to first two rows
dat <- dat[c(3:4, 1:2), ]
# Move Player names to rownames
row.names(dat) <- dat$Player
dat <- dat[-1]

library(fmsb)

cols <- c("black", "red")

radarchart(dat, plty = 1, plwd = 3, pcol = cols)

legend("topright",
       legend = row.names(dat)[-c(1:2)],
       bty = "n", pch = 20, col = cols,
       text.col = "grey25", pt.cex = 2)

相关问题