Come posso 'schivare' la posizione di geom_point in ggplot2?


19

Sto usando ggplot2 in R per creare grafici come i seguenti:

inserisci qui la descrizione dell'immagine

Gli errorbar si sovrappongono tra loro e sembrano davvero disordinati. Come posso separare gli errorbar per diversi indici? Ho usato position = "dodge" ma sembra non funzionare. Ecco la parte principale del mio codice:

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
Hai provato diversi valori di "schivare"? Per esempio una cosa del genere: position = position_dodge(width = 0.90). Vedi anche questo post .
COOLSerdash

Grazie per il tuo esempio Tuttavia, ho appena provato diversi valori di larghezza e non funziona ancora.
ycc,

2
È difficile trovare soluzioni senza il set di dati originale. Ma ho una domanda: perché i tuoi valori e i "gruppi" sono gli stessi? Che cosa è ? Non dovrebbe essere ? xntruncgroupINDEX
COOLSerdash

Funziona ora dopo che ho cambiato gruppo = "INDICE". Penso di aver frainteso il significato di "gruppo". Grazie @COOLSerdash
ycc

Risposte:


12

Il gruppo dovrebbe = INDICE invece di ntrunc nelle 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")

La trama ora sembra migliore.

inserisci qui la descrizione dell'immagine


7
Questo non ha funzionato per me fino a quando non ho usatogeom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))
Nova

Sarebbe bello avere un esempio qui perché non riesco a riprodurre il tuo risultato.
Léo Léopold Hertz

1
@Nova la mia ipotesi è la risposta era rotto quando ggplot2è andato dalla versione 0.9.Xa 1.Xo2.X
Richard Erickson
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.