2013-04-12 19 views
18

Wykonuję wykres punktowy za pomocą polecenia ggplot. Chciałbym mieć punkty o określonym kolorze i wypełnieniu (w plot, colour="blue", fill="cyan4", dla przykładu), ale nie mogę znaleźć. Co mam na tym punkcie:Kolor wypełnienia i obramowania w geom_point (scale_colour_manual) w 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) + 

(W poprzednim geom_point Próbowałem dodanie shape=21 jak bym zrobił w 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. 

To co ja dostać bez „kształtu = 21”

To jest to, co otrzymuję, dodając "kształt = 21". W obu przypadkach ignoruje scale_fill enter image description here

Próbowałem też dodanie fill=c("blue","red") w geom_point, ale R narzeka: „Błąd: Niezgodne długości za komplet estetyki: kształt, wielkość, wypełnić”.

Wszelkie sugestie, jak je zdobyć? Co jest nie tak z scale_fill w moim kodzie?

Dziękuję bardzo!

danych (DF) wygląda następująco:

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 

Odpowiedz

38

Będziesz musiał użyć kształtów z 21 to 25. Są to te, które mają colour i fill właściwości:

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

Jeśli chcesz różnych kolorów dla colour, jak również, a następnie:

+1

Dziękuję Arun. Twoje sugestie działają idealnie, ale wypełniają wszystkie kropki w tym samym kolorze. Czy można określić konkretny kolor dla każdego, tak jak w "spisku"? Zmodyfikuję go w celu dostarczenia danych. – PGreen

+1

Tak. To jest możliwe. Po prostu szukam danych do stworzenia fabuły .. :) – Arun

+1

@PGreen, spróbuj tej edycji. Możesz zrobić to samo dla 'colour' z' scale_colour_manual (values ​​= ...) 'jeśli wstawisz' colour' wewnątrz 'aes (.)' (Edytuj). – Arun

Powiązane problemy