105 votes

Changement de couleurs de ligne avec ggplot()

Je n'utilise pas ggplot2 autant, mais aujourd'hui j'ai pensé essayer quelques graphiques. Mais je n'arrive pas à comprendre comment contrôler manuellement les couleurs dans geom_line()

Je suis sûr que je suis en train de manquer quelque chose de simple, mais voici mon code de test :

x <- c(1:20, 1:20)
variable <- c(rep("y1", 20), rep("y2", 20) )
value <- c(rnorm(20), rnorm(20,.5) )

df <- data.frame(x, variable, value )

d <- ggplot(df, aes(x=x, y=value, group=variable, colour=variable ) ) + 
            geom_line(size=2)
d

ce qui donne la sortie attendue:

entrez la description de l'image ici

Je pensais que tout ce que j'avais à faire était quelque chose de simple comme :

d +  scale_fill_manual(values=c("#CC6666", "#9999CC"))

Mais cela ne change rien. Qu'est-ce que j'oublie?

144voto

Ista Points 3100

color et fill sont des esthétiques distinctes. Puisque vous voulez modifier la couleur, vous devez utiliser l'échelle correspondante :

d + scale_color_manual(values=c("#CC6666", "#9999CC"))

c'est ce que vous voulez.

8voto

user5783745 Points 1214

Voici un exemple minimal reproductible d'une autre façon de changer les couleurs des lignes (essayez de l'exécuter) :

library(tidyverse)
library(ggplot2)

iris %>% 
  ggplot(aes(x = Petal.Length)) +
  geom_line(aes(y = Sepal.Length), color = "green") +
  geom_line(aes(y = Sepal.Width), color = "blue") 

enter image description here

Cette méthode peut être particulièrement utile lorsque vous avez ajouté les lignes manuellement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X