2015-02-23 23 views
5

Şekil 21'in konumlarından doldurulmuş şekiller kullanarak noktalar çizmeye çalışıyorum.scale_shape_manual kullanırken efsanede kayıp renkler

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

siyah olmak şekillerin anahat rengini olmasını istiyorum, bu yüzden ayar color = aes() dışında "siyah" yapacağını düşündü:

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

Bu

çok iyi çalışıyor trick:

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

Bu, arsanın içinde çalışır. Ancak, efsanelerdeki renkler tamamen siyah olarak ayarlanmıştır.

Nasıl yukarıdaki gibi efsane alınır?

+0

bu yardımı yapar? http://stackoverflow.com/questions/27221011/fill-scale-is-not-shown-in-the-legend/27224440#27224440 –

cevap

6

Herhangi bir nedenden ötürü, dolgu lejantı varsayılan olarak şekil 1'e (düz daire) dönüşür, bu nedenle dolgu estetiğinden ziyade rengi gösterir. ggplot komutuna ekleyin:

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

enter image description here