Comment tracer plusieurs lignes (séries de données) dans un seul graphique dans R



Ce didacticiel explique comment tracer plusieurs lignes (c’est-à-dire des séries de données) dans un seul graphique dans R.

Pour tracer plusieurs lignes dans un graphique, nous pouvons soit utiliser la base R, soit installer un package plus sophistiqué comme ggplot2.

Utiliser BaseR

Voici deux exemples de la façon de tracer plusieurs lignes dans un seul graphique à l’aide de Base R.

Exemple 1 : Utiliser Matplot

Si vous disposez d’un ensemble de données au format large , un moyen simple de tracer plusieurs lignes dans un graphique consiste à utiliser matplot :

#Create a fake dataset with 3 columns (ncol=3) composed of randomly generated
#numbers from a uniform distribution with minimum = 1 and maximum = 10
data <- matrix(runif(30,1,10), ncol=3)
data
        [,1]     [,2]     [,3]
#[1,] 5.371653 3.490919 3.953603
#[2,] 9.551883 2.681054 9.506765
#[3,] 3.525686 1.027758 8.059011
#[4,] 9.923080 1.337935 1.112361
#[5,] 7.273972 7.627546 1.174340
#[6,] 8.859109 3.778144 9.384526
#[7,] 9.614542 3.866029 7.301729
#[8,] 9.288085 5.804041 8.347907
#[9,] 1.696849 4.650687 7.220209
#[10,] 5.820941 4.799682 5.243663

#plot the three columns of the dataset as three lines and add a legend in
#the top right corner of the chart
matplot(data, type = "b",pch=1,col = 1:3)
legend("topright", legend = 1:3, col=1:3, pch=1)

Ce code génère le graphique suivant :

Exemple 2 : Utilisation de points et de lignes

Une autre façon de tracer plusieurs lignes consiste à les tracer une par une, en utilisant les fonctions R intégrées points() et lines(). Le code ci-dessous montre un exemple de cette approche :

#generate an x-axis along with three data series
x  <- c(1,2,3,4,5,6)
y1 <- c(2,4,7,9,12,19)
y2 <- c(1,5,9,8,9,13)
y3 <- c(3,6,12,14,17,15)

#plot the first data series using plot()
plot(x, y1, type="o", col="blue", pch="o", ylab="y", lty=1)

#add second data series to the same chart using points() and lines()
points(x, y2, col="red", pch="*")
lines(x, y2, col="red",lty=2)

#add third data series to the same chart using points() and lines()
points(x, y3, col="dark red",pch="+")
lines(x, y3, col="dark red", lty=3)

#add a legend in top left corner of chart at (x, y) coordinates = (1, 19)
legend(1,19,legend=c("y1","y2","y3"), col=c("blue","red","black"),
                                   pch=c("o","*","+"),lty=c(1,2,3), ncol=1)

Ce code génère le graphique suivant :

Utiliser ggplot2

Voici un exemple de la façon de tracer plusieurs lignes dans un seul graphique à l’aide de ggplot2.

#install (if not already installed) and load ggplot2 package
if(!require(ggplot2)){install.packages('ggplot2')}

#generate fake dataset with three columns 'x', 'value', and 'variable'
data <- data.frame(x=rep(1:5, 3),
                   value=sample(1:100, 15), 
                   variable=rep(paste0('series', 1:3), each=5))

#view dataset
head(data)
  x value variable
1 1 93    series1
2 2 64    series1
3 3 36    series1
4 4 17    series1
5 5 95    series1
6 1 80    series2

#plot all three series on the same chart using geom_line()
ggplot(data = data, aes(x=x, y=value)) + geom_line(aes(colour=variable))

Cela génère le graphique suivant :

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations de traçage courantes dans ggplot2 :

Comment changer la position de la légende dans ggplot2
Comment changer le titre de la légende dans ggplot2
Comment modifier les marges dans ggplot2

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *