Radarchart Использование fmsb в R

Я пытался сделать radarchart с помощью fmsb, но у меня возникли проблемы с моим сценарием.

Если кто-нибудь может помочь, я буду очень признателен.

моя последовательность радиолокационной диаграммы должна быть между (0,2) и 0,2. Но когда я пытаюсь это сделать, график выходит за пределы допустимого. мой сценарий:

library("fmsb")

данные:

df <- data.frame("hours" = 0:23, 
  "max_value" = 2,"min_value" = 0,"CallsProportion" = (c(1.583333333
,1.291666667,1.166666667,1,0.041666667,0.833333333,0.625
,0.791666667,0.75,0.458333333,0.833333333,0.625,0.708333333,0.458333333,0.291666667,0.416666667,0.625,0.458333333,1.208333333,2.375,2.166666667,2.208333333,1.625,1.541666667)))

radarchart(df, axistype = 1,
       caxislabels = seq(0,2,0.2), 
       cglcol = "grey",
       vlcex = 0.8, cglty = 1, 
       cglwd = 0.5,axislabcol = "grey", 
       pcol = "black",plwd = 1.8, plty = 1)

radarchart


person Martin    schedule 28.01.2020    source источник
comment
У нас нет доступа к файлу данных. Можете ли вы опубликовать образцы данных? Отредактируйте вопрос, указав результат dput(G.chrys). Или, если он слишком велик с выводом dput(head(G.chrys, 25)).   -  person Rui Barradas    schedule 28.01.2020
comment
Спасибо за это, Моник. Я набрал свой data.frame. Надеюсь, вы можете помочь мне с этим.   -  person Martin    schedule 30.01.2020


Ответы (1)


Это проблема формата данных. Функция fmsb::radarchart нуждается в объекте класса "data.frame" в качестве первого аргумента, "matrix" этого не сделает. От help("radarchart"):

Фрейм данных, который будет использоваться для рисования radarchart. Если maxmin равно TRUE, это должно включать максимальные значения в строке 1 и минимальные значения в строке 2 для каждой переменной, а фактические данные должны быть указаны в строке 3 и ниже. Количество столбцов (переменных) должно быть больше 2.

Обратите внимание, что maxmin = TRUE является настройкой по умолчанию.

Итак, следуйте этим шагам.

  1. Получить диапазон значений, их минимум и максимум.
  2. Создайте матрицу с 2 строками и таким количеством столбцов, сколько столбцов в исходном фрейме данных.
  3. Свяжите матрицу со строками данных.
  4. Установите имена столбцов в первый столбец df, столбец hours.

В этом случае есть только один вектор для построения, вектор CallsProportion.

r <- range(df$CallsProportion)
m <- matrix(r[2:1], nrow = 2, ncol = nrow(df))
df2 <- rbind.data.frame(m, df$CallsProportion)
names(df2) <- df$hours

radarchart(df2, axistype = 1,
           caxislabels = seq(0, 2, 0.2), 
           cglcol = "grey",
           vlcex = 0.8, cglty = 1, 
           cglwd = 0.5, axislabcol = "grey", 
           pcol = "black", plwd = 1.8, plty = 1)

введите здесь описание изображения

person Rui Barradas    schedule 30.01.2020