Comment superposer des tracés de densité dans ggplot2 (avec exemples)
Un tracé de densité est un moyen utile de visualiser la distribution des valeurs dans un ensemble de données.
Souvent, vous souhaiterez peut-être visualiser les tracés de densité de plusieurs variables à la fois. Heureusement, cela est facile à faire en utilisant le package de visualisation de données ggplot2 dans R avec la syntaxe suivante :
ggplot(data, aes(x=value, fill=variable)) + geom_density(alpha=.25)
L’argument alpha contrôle l’opacité de chaque tracé de densité. Il est important de définir cette valeur en dessous de 1 afin que vous puissiez voir chaque tracé de densité lorsqu’ils se superposent.
L’exemple suivant étape par étape montre comment utiliser cette syntaxe dans la pratique.
Étape 1 : Créer les données
Tout d’abord, créons un faux ensemble de données avec trois variables :
#make this example reproducible set.seed(1) #create data df <- data.frame(var1=rnorm(1000, mean=0, sd=1), var2=rnorm(1000, mean=0, sd=3), var3=rnorm(1000, mean=3, sd=2)) #view first six rows of data head(df) var1 var2 var3 1 -0.6264538 3.4048953 1.2277008 2 0.1836433 3.3357955 -0.8445098 3 -0.8356286 -2.6123329 6.2394015 4 1.5952808 0.6321948 4.0385398 5 0.3295078 0.2081869 2.8883001 6 -0.8204684 -4.9879466 4.3928352
Étape 2 : Convertir les données de large en long
Ensuite, nous devons convertir les données d’un format large en un format long pour les rendre compatibles avec ggplot2 :
library(reshape) #convert from wide format to long format data <- melt(df) #view first six rows head(data) variable value 1 var1 -0.6264538 2 var1 0.1836433 3 var1 -0.8356286 4 var1 1.5952808 5 var1 0.3295078 6 var1 -0.8204684
Étape 3 : Créer les tracés de densité superposés
Enfin, nous pouvons créer les tracés de densité superposés :
library(ggplot2) #create overlaying density plots ggplot(data, aes(x=value, fill=variable)) + geom_density(alpha=.25)
N’hésitez pas à ajuster la valeur alpha pour rendre les tracés de densité plus ou moins transparents.
Par exemple, voici à quoi ressembleraient les tracés si nous augmentions la valeur alpha :
library(ggplot2) #create overlaying density plots ggplot(data, aes(x=value, fill=variable)) + geom_density(alpha=.7)
Ressources additionnelles
Comment créer un diagramme de Gantt dans R à l’aide de ggplot2
Comment créer un boxplot groupé dans R à l’aide de ggplot2
Comment créer des tracés côte à côte dans R à l’aide de ggplot2