Как я могу уклониться от позиции geom_point в ggplot2?

19

Я использую ggplot2 в R для создания графиков, подобных следующим:

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

Панели ошибок перекрываются друг с другом, которые выглядят очень грязно. Как я могу разделить панели ошибок для разных индексов? Я использовал position = "dodge", но, похоже, он не работает. Вот основная часть моего кода:

plot =  ggplot(data,aes(x=ntrunc,y=beta_best,group=ntrunc,colour=INDEX))
       +geom_point(aes(shape=detectable),na.rm=TRUE,position="dodge") 
        +geom_errorbar(aes(x=ntrunc,ymax=beta_high,ymin=beta_low),na.rm=TRUE,position="dodge")
ККМ
источник
1
Вы пробовали разные значения "уловки"? Например , что - то вроде: position = position_dodge(width = 0.90). Смотрите также этот пост .
COOLSerdash
Спасибо за ваш пример. Тем не менее, я только что попробовал разные значения ширины, и он все еще не работает.
YCC
2
Трудно найти решения без оригинального набора данных. Но у меня один вопрос: почему ваши и «группы» совпадают? Что такое ? Не должно быть ? xntruncgroupINDEX
COOLSerdash
Теперь он работает после того, как я изменил group = "INDEX". Я думаю, что я неправильно понял значение слова «группа». Спасибо @COOLSerdash
YCC

Ответы:

12

Группа должна = INDEX вместо ntrunc в АЭ.

plot =  ggplot(data, aes(x=ntrunc, y=beta_best, group=INDEX, colour=INDEX)) +
   geom_point(aes(shape=detectable), na.rm=TRUE, position="dodge") +
   geom_errorbar(aes(x=ntrunc, ymax=beta_high, ymin=beta_low), na.rm=TRUE, position="dodge")

Сюжет выглядит лучше.

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

ККМ
источник
7
Это не сработало для меня, пока я не использовалgeom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))
Nova
Было бы здорово получить пример данных здесь, потому что я не могу воспроизвести ваш результат.
Лео Леопольд Герц 준영
1
@ Нова, я думаю, что ответ был сломан, когда ggplot2переходил от версии 0.9.Xк 1.Xили2.X
Ричард Эриксон