Генерация радиолокационных карт с ggplot2 - PullRequest
0 голосов
/ 15 мая 2018

Чтобы облегчить воспроизводимость, вы можете скачать здесь данные.Его структура:

> str(data)
'data.frame':   30 obs. of  4 variables:
 $ Count: num  -15.26 NaN NaN -7.17 -49.37 ...
 $ X1   : Factor w/ 1 level "Mean": 1 1 1 1 1 1 1 1 1 1 ...
 $ X2   : Factor w/ 10 levels "DC1","DC10","DC2",..: 1 1 1 3 3 3 4 4 4 5 ...
 $ X3   : Factor w/ 3 levels "SAPvsSH","SAPvsTD6",..: 1 2 3 1 2 3 1 2 3 1 ...

Я запускаю эту диаграмму ggplot:

ggplot(data=data,  aes(x=X2, y=Count, group=X3, colour=X3)) + 
  geom_point(size=5) + 
  geom_line() + 
  xlab("Decils") + 
  ylab("% difference in nº Pk") + 
  ylim(-50,25) + ggtitle("CL")  + 
  geom_hline(aes(yintercept=0), lwd=1, lty=2) + 
  scale_x_discrete(limits=c(orden_deciles))

С таким результатом:

enter image description here

Эта диаграмма отражает процентную разницу между SH и TD6 относительно SAP (которая является горизонтальной черной линией, соответственно, красным и зеленым цветами) и между TD6 относительно SH (которая в этом случае также представлена ​​горизонтальным черным цветом).линия, но теперь синим цветом).Я использовал десять переменных: DC1:DC10.

Я хотел бы преобразовать эту карту в радиолокационную карту .Я пытался использовать ggradar или ggRadar, но безуспешно.Примерно так было бы удивительно:

enter image description here

Горизонтальная черная линия должна быть идеально круглой , как круг, помещенный между двумя краснымии синие линии на предыдущем изображении.В идеале DC1 должен располагаться на север, по часовой стрелке.

Есть идеи или предложения?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Существует расширение ggplot для создания диаграмм радара / паука, которое называется https://www.ggplot2 -exts.org / ggradar.html

По какой-то странной причине он ожидает, что данные в широком, а нев чистом / длинном формате.

0 голосов
/ 15 мая 2018

Благодаря @DJack, я публикую здесь результат добавления + coord_polar():

enter image description here

Это окончательный код:

ggplot(data=data,  aes(x=X2, y=Count, group=X3, colour=X3)) + 
  geom_point(size=5) + 
  geom_line() + 
  xlab("Decils") + 
  ylab("% difference in nº Pk") + 
  ylim(-50,25) + ggtitle("CL")  + 
  geom_hline(aes(yintercept=0), lwd=1, lty=2) + 
  scale_x_discrete(limits=c(orden_deciles)) +
  coord_polar()
...