Voici une solution utilisant des graphiques traditionnels (et les données de Dirk) :
> DF <- data.frame(x=1:10, y=rnorm(10)+5, z=sample(letters[1:3], 10, replace=TRUE))
> DF
x y z
1 1 6.628380 c
2 2 6.403279 b
3 3 6.708716 a
4 4 7.011677 c
5 5 6.363794 a
6 6 5.912945 b
7 7 2.996335 a
8 8 5.242786 c
9 9 4.455582 c
10 10 4.362427 a
> attach(DF); plot(x, y, col=c("red","blue","green")[z]); detach(DF)
Cela repose sur le fait que DF$z
est un facteur, donc lors d'un sous-ensemble par celui-ci, ses valeurs seront traitées comme des entiers. Ainsi, les éléments du vecteur de couleur varieront avec z
comme suit :
> c("red","blue","green")[DF$z]
[1] "green" "blue" "red" "green" "red" "blue" "red" "green" "green" "red"
Vous pouvez ajouter une légende à l'aide de la fonction legend
:
legend(x="topright", legend = levels(DF$z), col=c("red","blue","green"), pch=1)