2015-02-23 11 views
5

Sto provando a tracciare punti utilizzando forme piene dalla posizione 21 delle forme.Colori persi nella legenda quando si utilizza scale_shape_manual

d <- data.frame(expand.grid(a=letters[1:4], 
     b=factor(1:2)), y=rnorm(8),x=rnorm(8)) 

questo funziona molto bene:

ggplot(d, aes(x=x, y=y,fill=a,color=a)) + 
     geom_point(aes(shape=b,fill=a),size=4) + 
     scale_shape_manual(values=c(21,22)) 

voglio avere il colore del contorno delle forme di essere nero, così ho pensato che il colore impostazione = "nero" al di fuori del aes() farebbe il trucco:

ggplot(d, aes(x=x, y=y,fill=a,color=a)) + 
    geom_point(aes(shape=b,fill=a),color="black",size=4) + 
    scale_shape_manual(values=c(21,22)) 

Questo funziona all'interno della trama. Tuttavia, i colori delle legende sono tutti impostati su nero.

Come per ottenere la leggenda di cui sopra?

+0

fa questo aiuto? http://stackoverflow.com/questions/27221011/fill-scale-is-not-shown-in-the-legend/27224440#27224440 –

risposta

6

Per qualche ragione, le impostazioni predefinite di riempimento legenda per simbolo 1 (cerchio pieno), in modo che mostra il colore piuttosto che l'estetica di riempimento. Aggiungere questo al comando ggplot:

+ guides(fill=guide_legend(override.aes=list(shape=21))) 

enter image description here

Problemi correlati