Как нарисовать радиолокационную карту с большим количеством строк (или размеров), используя R? - PullRequest
2 голосов
/ 07 ноября 2019

Допустим, у меня есть такие данные:

a <- tibble(id=c(1,1.1,1.2,1.7,2,2.1,2.6,4,4.6,4.68),
            x=c(0.3,0.5,0.2,0.7,0.1,0.5,0.43,0.6,0.3,0.65),
            y=c(0.2,0.1,0.22,0.1,0.5,0.2,0.3,0.2,0.14,0.3))

Это всего лишь пример, мои реальные данные намного больше, чем это. и x + y + ... = 1. Я хочу нарисовать две линии: одна линия для x, одна линия для x + y:

ggplot(a) +
  geom_line(aes(x=id,y=x),color='red') +
  geom_line(aes(x=id,y=x+y),color='blue')

Но то, что я действительно хочу, это как радардиаграмма типа:

enter image description here

Вы можете видеть, что есть круг с радиусом, равным 1. x и x + y, (возможно, больше в моих данных) красные и синие круги соответственно. Таким образом, x + y должно быть больше, чем x, но всегда в круге, потому что x + y + ... = 1. У моих данных много идентификаторов, поэтому это не традиционный радар с несколькими измерениями.

1 Ответ

1 голос
/ 07 ноября 2019

Вы можете создавать радиолокационные карты с помощью coord_polar() - например,

library(tidyverse)

ggplot(a) + 
    geom_smooth(aes(x=id,y=x),color='red', se = FALSE) + 
    geom_smooth(aes(x=id,y=x+y),color='blue', se = FALSE) + 
    geom_line(aes(x = id, y = 1)) + 
    coord_polar()

Обратите внимание, что я использовал geom_smooth, чтобы приблизиться к ожидаемому результату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...