Comment créer un tracé de violon dans ggplot2 (avec exemples)



Vous pouvez utiliser les méthodes suivantes pour créer un tracé en violon dans ggplot2 :

Méthode 1 : créer des intrigues de violon par groupe

ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) + 
  geom_violin() +

Méthode 2 : créer des tracés de violon horizontaux par groupe

ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) + 
  geom_violin() +
  coord_flip()

Méthode 3 : créer des tracés de violon par groupe et afficher la valeur médiane

ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) + 
  geom_violin() +
  stat_summary(fun=median, geom='point', size=2)

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant dans R :

#make this example reproducible
set.seed(1)

#create data frame
df <- data.frame(team=rep(c('A', 'B', 'C'), each=100),
                 points=c(rnorm(100, mean=10),
                          rnorm(100, mean=15),
                          rnorm(100, mean=20)))

#view head of data frame
head(df)

  team    points
1    A  9.373546
2    A 10.183643
3    A  9.164371
4    A 11.595281
5    A 10.329508
6    A  9.179532

Remarque : Nous avons utilisé la fonction set.seed() pour garantir que cet exemple est reproductible.

Exemple 1 : Créer des tracés de violon par groupe

Nous pouvons utiliser la syntaxe suivante pour créer des tracés en violon qui montrent la distribution de la variable points , regroupés par la variable équipe :

library(ggplot2)

#create violin plot to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) + 
  geom_violin() 

L’axe des x affiche chaque équipe et l’axe des y affiche la répartition des points marqués par chaque équipe.

Exemple 2 : Créer des tracés de violon par groupe

Pour créer des tracés en violon horizontaux qui montrent la distribution de la variable points , regroupés par la variable team , ajoutez simplement la fonction coord_flip() :

library(ggplot2)

#create horizontal violin plots to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) + 
  geom_violin() +
  coord_flip()

tracés de violon horizontaux dans ggplot2

L’axe des y affiche chaque équipe et l’axe des x affiche la répartition des points marqués par chaque équipe.

Exemple 3 : Créer des tracés de violon par groupe et afficher la valeur médiane

Le code suivant montre comment créer des tracés en violon qui montrent la distribution de la variable de points , regroupés par la variable d’équipe , avec la valeur médiane des points représentée par un cercle :

library(ggplot2)

#create violin plots and display median points value as circle
ggplot(df, aes(x=team, y=points, fill=team)) + 
  geom_violin() +
  stat_summary(fun=median, geom='point', size=2)

intrigue de violon dans ggplot2

La valeur médiane des points pour chaque équipe est représentée par un petit cercle à l’intérieur de chaque parcelle de violon.

Remarque : Pour augmenter la taille du cercle, augmentez simplement la valeur de l’argument size dans la fonction stat_summary() .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans ggplot2 :

Comment changer la taille de la police dans ggplot2
Comment supprimer une légende dans ggplot2
Comment faire pivoter les étiquettes des axes dans ggplot2

Ajouter un commentaire

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