2013-11-28 7 views
2

Я пытаюсь создать график взаимодействия, а R выдает ошибку geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?, что я не понимаю, почему. Ниже мой кадр данных:Ошибка построения графика ggplot2

 topPagesCount DIRTY_INDUSTRY IND_DIRTY_HETEROGENEITY 
1    10  1.4444444    1.1727001 
2   831  1.4444444    1.1727001 
3    1  0.8218391    0.4599108 
4    0  0.8218391    0.4599108 
5    0  0.8821549    0.4870270 
6    30  0.8190476    0.6582197 
7    26  0.8218391    0.4599108 
8    0  1.4444444    1.1727001 
9    7  0.8821549    0.4870270 
10   398  0.8218391    0.4599108 

и ниже мой код:

greatDF$DIRTY_INDUSTRY_fac <- as.factor (greatDF$DIRTY_INDUSTRY) 
ggplot(data = greatDF, aes(x = IND_DIRTY_HETEROGENEITY, y=topPagesCount, 
colour=DIRTY_INDUSTRY_fac, group=DIRTY_INDUSTRY_fac))+ 
stat_summary(fun.y=mean, geom="point")+ 
stat_summary(fun.y=mean, geom="line") 

Я не вижу никаких причин для ошибки, потому что ясно, что есть более чем 1 тип значения для моего ответа переменная topPagesCount для условия взаимодействия DIRTY_INDUSTRY:IND_DIRTY_HETEROGNEITY ... я прав? может быть, я что-то недоразумение ...

спасибо,

+0

Это потому, что для каждого значения DIRTY_INDUSTRY, у вас есть только одно соответствующее значение IND_DIRTY_HETEROGENEITY? – Troy

+0

может быть ....... –

ответ

0

Причина этого, как и @Troy указывает, потому, что группировка сама по себе не имеет смысла для geom_line() или geom_path(). Нет никаких точек, которые могут быть связаны с линиями вообще!

Вот почему все в порядке, когда вы удаляете последнюю строку. Обратите внимание, что эта «ошибка» не является фактической ошибкой, она отображает легенду, поскольку она предназначена для поиска, нет ни одной реальной строки, которая должна быть построена в соответствии с вашей эстетикой и статистикой.

Как это исправить? Ну, это зависит от того, чего вы пытаетесь достичь, как обычно. Обратите внимание на разницу между вашим кодом и моим:

ggplot(data = greatDF, aes(x = IND_DIRTY_HETEROGENEITY, y=topPagesCount, 
         colour=DIRTY_INDUSTRY_fac, group=DIRTY_INDUSTRY_fac)) + 
geom_line(size=1.4) + 
geom_point(size=5, shape=10) + 
stat_summary(fun.y=mean, geom="point", size=5) 

Является ли мое предположение правильным? Вы можете увидеть this вопрос для получения дополнительной информации по этой теме.

enter image description here

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