2016-09-08 5 views
0

Используя ggplot2, я пытаюсь построить две обработки в графе полярной линии. Я могу графически отображать точки для обоих обработок и получить строку для первой обработки, которую я вводил, но строка, которую я хочу подключить второй поднабор, просто накладывается поверх второго.r- ggplot2: график полярной линии с двумя линиями

category highest lowest 
    1  A  71  23 
    2  B  81  38 
    3  C  77  22 
    4  D  83  56 
    5  E  84  32 
    6  F  82  55 
    7  G  73  26 

До сих пор, мой код выглядит следующим образом

p1<-ggplot(data=d,aes(x=factor(category),y=highest,group=1)) + 
ylim(0,NA) + 
geom_point(color='purple',stat='identity')+ 
geom_polygon(color='purple',fill=NA)+ 
coord_polar(start =-pi* 1/7) 

p1 

p1 + 
geom_point(aes(x=factor(category),y=lowest),color='green',stat='identity')+ 
geom_polygon(color='green',fill=NA)+ 
coord_polar(start =-pi* 1/7) 

и его смотрит как этот

plot

Любая помощь? Благодаря!!

+0

пожалуйста обеспечивают воспроизводимый пример. –

+0

Разве это то, за что вы шли (участки пауков)? http://www.r-graph-gallery.com/143-spider-chart-with-saveral-individuals/ –

ответ

0

Вы по-прежнему используете общий y эстетический («самый высокий») во втором звонке geom_polygon. Чтобы построить другой столбец, вам нужно определить его в aes внутри слоя.

geom_polygon(aes(y = lowest), color='green',fill=NA) 

Более стандартный способ сделать такой сюжет, хотя, чтобы получить набор данных в длинном формате, где группировка переменной (высокая и низкая) является переменной, и все ваши значения у находятся в одной столбец для построения графика.

library(reshape2) 
d2 = melt(d, id.var = "category") 

После того, как вы есть, что вы можете отобразить color для группирования переменной. Вы устанавливаете цвета для определенных значений, используя scale_color_manual. По умолчанию вы получаете легенду (что может быть хорошо), но вы подавляете ее, используя guide = "none".

ggplot(data=d2, aes(x=factor(category), y=value, group = variable, color = variable)) + 
    ylim(0,NA) + 
    geom_point(, stat='identity') + 
    geom_polygon(fill=NA)+ 
    coord_polar(start =-pi* 1/7) + 
    scale_color_manual(values = c("purple", "green"), guide = "none") 

Оба подхода дают один и тот же сюжет в конце: enter image description here

Смежные вопросы