ggplot2 facet : diviser un graphique en plusieurs panneaux - Logiciel R et visualisation de données


La technique facet partitionne un graphique en une matrice de panneaux. Chaque panneau montre une partie des données. Ce tutoriel R décrit comment partitionner un graphique en utilisant le package ggplot2.

Il existe deux fonctions principales pour le partitionnement :

  • facet_grid()
  • facet_wrap()

Données

Le jeu de données ToothGrowth est utilisé dans les exemples ci-dessous :

# Convertir la variable dose de type "numeric" au type "factor"
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
df <- ToothGrowth
head(df)
##    len supp dose
## 1  4.2   VC  0.5
## 2 11.5   VC  0.5
## 3  7.3   VC  0.5
## 4  5.8   VC  0.5
## 5  6.4   VC  0.5
## 6 10.0   VC  0.5

Assurez-vous que la variable dose soit convertie en une variable de type “factor” en utilisant le script de R ci-dessus.

Box plot basique

Créer un box plot basique coloré par groupes :

library(ggplot2)
bp <- ggplot(df, aes(x=dose, y=len, group=dose)) + 
  geom_boxplot(aes(fill=dose))
bp

ggplot2 facet - Logiciel R et visualisation de données

Partitionner avec une variable

Le graphe est partitionné en plusieurs panneaux en fonction des niveaux du groupe “supp”:

# Partitionnement vertical
bp + facet_grid(supp ~ .)
# Partitionnement horizontal
bp + facet_grid(. ~ supp)

ggplot2 facet - Logiciel R et visualisation de donnéesggplot2 facet - Logiciel R et visualisation de données

Partitionner avec deux variables

Le graphe est partitionné en fonction des niveaux des groupes “dose” et “supp” :

# Facet avec deux variables: dose et supp.
# Les lignes sont "dose" et les colonnes sont "supp"
bp + facet_grid(dose ~ supp)
# Facet avec deux variables: inverser l'ordre des 2 variables
# Les lignes sont "supp" et les colonnes sont "dose"
bp + facet_grid(supp ~ dose)

ggplot2 facet - Logiciel R et visualisation de donnéesggplot2 facet - Logiciel R et visualisation de données

Notez que, vous pouvez utiliser l’argument margins pour ajouter un panneau additionnel (all) contenant toutes les données pour chacune des variables utilisées pour le partitionnement.

bp + facet_grid(dose ~ supp, margins=TRUE)

ggplot2 facet - Logiciel R et visualisation de données

Echelles des panneaux

Par défaut, tous les panneaux ont les mêmes échelles (scales=“fixed”). Elles peuvent être indépendantes en utilisant les valeurs suivantes pour l’argument scales : “free”, “free_x”" ou “free_y”.

bp + facet_grid(dose ~ supp, scales='free')

ggplot2 facet - Logiciel R et visualisation de données

Comme vous pouvez le constater sur le graphique ci-dessus, les axes y des différents panneaux ont des échelles différentes.

Etiquettes des panneaux

L’argument labeller peut être utilisé pour contrôler les étiquettes des panneaux:

bp + facet_grid(dose ~ supp, labeller=label_both)

ggplot2 facet - Logiciel R et visualisation de données

L’apparence des étiquettes des panneaux peut être modifiée comme suit:

# Modifier le texte. Valeurs possibles pour le style de police:
  #'plain', 'italic', 'bold', 'bold.italic'.
bp + facet_grid(dose ~ supp)+
    theme(strip.text.x = element_text(size=12, color="red",
                                      face="bold.italic"),
          strip.text.y = element_text(size=12, color="red",
                                      face="bold.italic"))
# Modifier l'apparence du rectangle autour 
# des étiquettes de panneaux 
bp + facet_grid(dose ~ supp)+
 theme(strip.background = element_rect(colour="black", fill="white", 
                                       size=1.5, linetype="solid"))

ggplot2 facet - Logiciel R et visualisation de donnéesggplot2 facet - Logiciel R et visualisation de données

facet_wrap

Les panneaux peuvent être placés côte-à-côte en utilisant la fonction facet_wrap() comme suit :

bp + facet_wrap(~ dose)
bp + facet_wrap(~ dose, ncol=2)

ggplot2 facet - Logiciel R et visualisation de donnéesggplot2 facet - Logiciel R et visualisation de données

Infos

Cette analyse a été réalisée avec le logiciel R (ver. 3.1.2) et le package ggplot2 (ver. 1.0.0)









Want to Learn More on R Programming and Data Science?

Follow us by Email

by FeedBurner

On Social Networks:


 Get involved :
  Click to follow us on and Google+ :   
  Comment this article by clicking on "Discussion" button (top-right position of this page)
  Sign up as a member and post news and articles on STHDA web site.
Cette page a été vue 7406 fois