2016-06-01 13 views
5

Uso della funzione ggplotgeom_pointrange(), come si modifica la dimensione del punto e lo spessore della linea separatamente?Dimensioni separate per punti e linee in geom_pointrange da ggplot

Esempio:

# make test data 
df <- data.frame(y=10, ymin=1, ymax=20, x=1) 

# store ggplot object 
p <- ggplot(data=df, aes(y=y, ymin=ymin, ymax=ymax, x=x)) 

# plot 1: big dot and thick line 
p + geom_pointrange(fill='blue', color='grey', shape=21, size=5) 

# plot 2: small dot and thin line (I want small dot and thick line or vice versa) 
p + geom_pointrange(fill='blue', color='grey', shape=21, lwd=1, size=5) 

Plot 1:

enter image description here

Trama 2:

enter image description here

Posso avere un piccolo punto con una linea spessa (o vice -versa)?

Una soluzione alternativa potrebbe essere quella di tracciare la linea e il punto come geomi separati utilizzando geom_point e geom_errorbar. Sfortunatamente, la mia vera applicazione riguarda il jittering, quindi il punto e l'intervallo finiscono in punti diversi (a meno che forse non riesca a controllare il jittering?).

Sono in grado di trovare domande simili su SO (like this), ma non rispondono direttamente a questo.

Grazie!

risposta

8

È possibile utilizzare fatten in combinazione con size:

p + geom_pointrange(fill='blue', color='grey', shape=21, fatten = 20, size = 5) 

enter image description here

p + geom_pointrange(fill='blue', color='grey', shape=21, fatten = .5, size = 5) 

enter image description here

s. ?geom_pointrange:

ingrassare
Un fattore moltiplicativo usato per aumentare la dimensione del barra centrale in geom_crossbar() ed il punto medio in geom_pointrange().

+0

È interessante notare che 'fatten' sembra funzionare in Windows ma non nel mio ambiente Unix. qualche idea? – dmp

+0

Ho provato su un Mac, non ho idea di quale potrebbe essere il problema, forse la tua versione R e ggplot2 deve essere aggiornata? – beetroot

Problemi correlati