Remplir et délimiter la couleur dans le point géométrique (manuel de couleur de l'échelle) dans ggplot

je fais un scatter plot en utilisant ggplot. Je voudrais avoir des points avec une couleur particulière et de remplissage (plot,colour="blue", fill="cyan4", par exemple.) mais je ne trouve pas comment. Ce que j'ai à ce point est:

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

précédent geom_pointj'ai essayé d'ajouter shape=21 comme je l'aurais fait dans 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.

C'est ce que j'obtiens sans "forme=21"

enter image description here

C'est ce que j'obtiens quand j'ajoute "shape=21". Dans les deux cas, il ignore scale_fill enter image description here

j'ai aussi essayé d'ajouter fill=c("blue","red") dans geom_point, mais R se plaint: "Error: Incompatible longueurs pour définir l'esthétique: la forme, la taille, le remplir".

des suggestions sur la façon de l'obtenir? Quel est le problème avec scale_fill dans mon code?

Merci beaucoup!

Données (df) ressemble à:

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
25
demandé sur PGreen 2013-04-12 11:50:43
la source

1 ответов

vous devrez utiliser des formes de 21 to 25. Ce sont ceux qui ont colour et fill propriétés:

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

Si vous voulez des couleurs différentes pour colour ainsi, alors:

ggplot(df, aes(own, method)) + 
      geom_point(aes(colour=factor(label), 
      fill = factor(label)), shape=21, size = 4) + 
      scale_fill_manual(values=c("blue", "cyan4")) + 
      scale_colour_manual(values=c("white", "black"))
50
répondu Arun 2013-04-12 12:04:50
la source

Autres questions sur