2017-10-13 11 views
3

Pourquoi cela ne prend-il pas les couleurs vertes? Il reste bleu ...ggplot2, pourquoi si bleu? Comment définir une palette de couleurs différente en dégradé

require(ggplot2) 
data(iris) 
ggplot(iris,aes(Sepal.Length,Sepal.Width,col=Petal.Length,pch=Species,size=Petal.Width))+ 
    scale_fill_gradient(low="green",high="darkgreen")+ 
    ggtitle('Why so blue?')+geom_point() 

Des suggestions?

enter image description here

+2

Beau titre. Bon jeu de mots, * et * j'ai correctement anticipé la question. – MrGumble

Répondre

6

Vous avez utilisé scale_fill_gradient(), mais votre aes() contient un argument couleur. Essayez plutôt scale_color_gradient().

data(iris) 
ggplot(iris,aes(Sepal.Length,Sepal.Width, 
       col=Petal.Length,pch=Species,size=Petal.Width))+ 
scale_color_gradient(low="green",high="darkgreen")+ 
ggtitle('Now so green')+geom_point() 

sortie:

enter image description here

Explication: portion de code ggplot

Que ce soit pour utiliser scale_fill ou scale_color est déterminé par les arguments fournis aux aes(). Les arguments de couleur sont généralement utilisés pour des choses comme geom_point() et geom_line(); Les arguments de remplissage sont généralement utilisés pour la couleur des barres dans un graphique à barres par exemple.

+0

Quand est-ce que j'utilise scale_fill_gradient? – Chris

+1

Lorsque vous utilisez une esthétique de «remplissage». Ici, vous utilisez une esthétique «couleur» ('col = Petal.Length'). Vous pouvez utiliser une esthétique 'fill' avec' geom_point', mais cela n'affecterait les couleurs du tracé que si vous utilisez un marqueur de point rempli (pch 21-25 sont des marqueurs de points remplis). Une esthétique de remplissage peut également être utilisée pour un graphique à barres ou un tracé de ruban (par exemple, pour la couleur de remplissage d'un intervalle de confiance lors du traçage des lignes de régression) – eipi10

+1

@Chris - Bonne question. – www