Jak mogę „uchylić” pozycję geom_point w ggplot2?


19

Używam ggplot2 w R do tworzenia wykresów takich jak te:

wprowadź opis zdjęcia tutaj

Paski błędów nakładają się na siebie, co wygląda na bardzo niechlujne. Jak mogę oddzielić paski błędów dla różnych indeksów? Użyłem position = "dodge", ale wydaje się, że nie działa. Oto główna część mojego kodu:

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
Czy próbowałeś różnych wartości „unik”? Na przykład coś takiego: position = position_dodge(width = 0.90). Zobacz także ten post .
COOLSerdash

Dziękuję za twój przykład. Jednak właśnie wypróbowałem różne wartości szerokości i nadal nie działa.
ycc

2
Trudno jest znaleźć rozwiązania bez oryginalnego zestawu danych. Ale mam jedno pytanie: dlaczego twoje wartości i „grupy” są takie same? Co to jest ? Nie powinno być ? xntruncgroupINDEX
COOLSerdash

Działa teraz po zmianie grupy = „INDEX”. Myślę, że źle zrozumiałem znaczenie „grupy”. Dzięki @COOLSerdash
ycc

Odpowiedzi:


12

Grupa powinna = INDEX zamiast ntrunc w AES.

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")

Fabuła wygląda teraz lepiej.

wprowadź opis zdjęcia tutaj


7
Nie działało to dla mnie, dopóki nie użyłemgeom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))
Nova

Byłoby wspaniale uzyskać tutaj przykładowe dane, ponieważ nie mogę odtworzyć twojego wyniku.
Léo Léopold Hertz -

1
@Nova zgaduję, że odpowiedź została zerwana, gdy ggplot2przeszedłem z wersji 0.9.Xna 1.Xlub2.X
Richard Erickson
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.