2013-04-12 49 views
18

Tôi đang thực hiện một âm mưu phân tán bằng ggplot. Tôi muốn có các điểm có màu và màu tô cụ thể (trong số plot, colour="blue", fill="cyan4", ví dụ như cũ) nhưng tôi không thể tìm thấy cách thực hiện. Những gì tôi có đến thời điểm này là:Màu tô và màu đường viền trong geom_point (scale_colour_manual) trong ggplot

ggplot(df, aes(own,method)) + 
    panel.configuration + 
    scale_shape_identity() + #to use the 'plot' shape format. 
    geom_point(aes(color = factor(label)), position = "jitter",size=3) + 

(Trong trước geom_point Tôi đã cố gắng thêm shape=21 như tôi đã làm trong plot)

scale_colour_manual(values=c("A"="chocolate3","B"="cyan4")) + 
    scale_fill_manual(values=c("A"="green", "B"="red")) + #DOES NOTHING... 
    xlim(7,47) + ylim(7,47)+ ... etc. 

Đây là những gì tôi nhận được không có "hình dạng = 21"

enter image description here

Đây là những gì tôi nhận được khi thêm "hình dạng = 21". Trong cả hai trường hợp nó bỏ qua scale_fill enter image description here

Tôi cũng đã cố gắng thêm fill=c("blue","red") trong geom_point, nhưng R phàn nàn: "Lỗi: độ dài không tương thích cho bộ thẩm mỹ: hình dạng, kích thước, lấp đầy".

Bất kỳ đề xuất nào về cách tải ứng dụng? Có gì sai với scale_fill trong mã của tôi?

Cảm ơn bạn rất nhiều!

dữ liệu (df) trông giống như:

21 15 A 
24 16 A 
24 17 A 
28 14 A 
24 15 A 
22 15 A 
20 18 A 
24 18 A 
34 9 B 
38 12 B 
41 19 B 
42 13 B 
36 12 B 
40 17 B 
41 14 B 
37 12 B 
40 13 B 
37 15 B 
35 15 B 

Trả lời

38

Bạn sẽ phải sử dụng hình dạng từ 21 to 25. Đây là những người mà có colourfill tính:

ggplot(df, aes(own, method)) + 
    geom_point(colour="white", shape=21, size = 4, 
    aes(fill = factor(label))) + 
    scale_fill_manual(values=c("blue", "cyan4")) 

Nếu bạn muốn màu sắc khác nhau cho colour là tốt, sau đó:

+1

Cảm ơn bạn Arun. Đề xuất của bạn hoạt động hoàn hảo nhưng nó lấp đầy tất cả các dấu chấm có cùng màu. Có thể chỉ định một màu cụ thể cho mỗi như trong 'cốt truyện' không? Tôi sẽ chỉnh sửa nó để cung cấp dữ liệu. – PGreen

+1

Có. Điều đó là có thể. Tôi chỉ đang tìm kiếm dữ liệu để tạo cốt truyện .. :) – Arun

+1

@PGreen, hãy thử chỉnh sửa này. Bạn có thể làm tương tự cho 'colour' với' scale_colour_manual (values ​​= ...) 'nếu bạn chèn' colour' trong 'aes (.)' (Đã chỉnh sửa). – Arun

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