ggradar returns Error: 'plot.data' contains value(s) > grid.max

ggradar returns Error: 'plot.data' contains value(s) > grid.max

给定一个样本数据如下:

df <- structure(list(date = c("2022-1-31", "2022-2-28"), PMI = c(50.1, 
50.2), PMI.import = c(48.4, 49), PMI.export = c(47.2, 48.6)), class = "data.frame", row.names = c(NA, 
-2L))

输出:

       date  PMI PMI.import PMI.export
1 2022-1-31 50.1       48.4       47.2
2 2022-2-28 50.2       49.0       48.6

我尝试用下面的代码绘制雷达图,但是 none 其中 returns 是我预期的图(需要显示一月和二月三个变量的微小差异)。

library(scales)
library(ggiraphExtra)
library(ggradar)

df %>% 
  mutate_each(funs(rescale), -date) %>%
  ggradar()

ggradar(df,
        values.radar = c("40", "50", "70"),
        grid.min=40, grid.mid=50, grid.max=60
)

ggradar(df) returns:Error: 'plot.data' contains value(s) > grid.max

有人可以帮忙吗?如果可能的话,我希望将y限制设置在40~70或40~60之间以显示两个月之间数据的微小变化。

参考:

https://github.com/ricardo-bion/ggradar/issues/7

我认为您需要缩放数据,例如,值 45 - 55 映射到范围 0 - 1。然后适当地标记图:

df %>% 
  mutate(across(contains('PMI'), ~ (.x - 45) / 10)) %>%
  ggradar(values.radar = c('45', '50', '55'))