Il y a quelques conseils pour mentionner ici. Tout d'abord, ggplot lit les couleurs nommées dans aes() comme des facteurs dans l'ordre alphabétique, par opposition aux noms de couleurs, ce qui les rend apparemment impropres à l'impression (et apparemment avec la mauvaise couleur) si vous ne faites pas la liste les couleurs dans cet ordre. Par exemple, le paquet ggplot2 interprétera et tracera "bleu", "vert", "jaune", "orange" comme "bleu", "vert", "orange", "jaune". En plus de ce changement d'ordre, il n'utilisera pas les valeurs que vous fournissez comme les couleurs à tracer; il utilise des couleurs par défaut.
Il y a plusieurs choses que vous pouvez faire pour résoudre ce problème. La première consiste à utiliser scale_colour_manual pour clarifier un ordre spécifique et la valeur de vos couleurs, comme ceci:
ggplot(data=vv) + aes(x=year) +
geom_line(aes(y = a1, colour= "blue")) +
geom_line(aes(y = a2, colour= "green")) +
geom_line(aes(y = a3, colour= "yellow")) +
geom_line(aes(y = a4, colour= "orange")) +
scale_colour_manual(values=c("blue"="blue","green"="green",
"yellow"="yellow","orange"="orange"),
breaks=c("blue","green","yellow","orange")) +
scale_x_continuous(breaks=seq(2000, 2009, 3)) +
expand_limits(y=0)
Sortie:
Si vous n'avez pas besoin d'une légende, vous pouvez aussi il suffit de placer l'argument de couleur en dehors de aes(), comme l'explique @tekrei. Pour d'autres options de personnalisation, essayez? Scale_colour_manual pour plus d'aide.