2015-02-23 16 views
5

Tôi đang cố gắng vẽ điểm bằng cách sử dụng các hình dạng được điền từ vị trí 21 của hình dạng.Màu bị mất trong truyền thuyết khi sử dụng scale_shape_manual

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

này hoạt động rất tốt:

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

Tôi muốn có màu viền của các hình dạng để có màu đen, vì vậy tôi nghĩ rằng việc thiết color = "black" ngoài aes() sẽ làm gì mẹo:

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

Làm việc trong cốt truyện. Tuy nhiên, màu sắc trong truyền thuyết đều được đặt thành màu đen.

Cách nhận chú giải như trên?

+0

không trợ giúp này? http://stackoverflow.com/questions/27221011/fill-scale-is-not-shown-in-the-legend/27224440#27224440 –

Trả lời

6

Vì lý do nào đó, chú thích điền sẽ mặc định thành biểu tượng hình dạng 1 (hình tròn rắn), vì vậy nó hiển thị màu thay vì tô màu thẩm mỹ. Thêm phần này vào lệnh ggplot:

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

enter image description here

Các vấn đề liên quan