15 Diagramme : Mosaic
Ce chapitre est issu d’une contribution à la communauté crée par harin
Cette page est en cours de mise à jour. Nous apprécions toute remarque que vous puissiez avoir. Pour nous aider à améliorer cette page, vous pouvez contribuer à notre repo.
15.1 Vue d’ensemble
Cette section explique comment faire des graphiques en Mosaïque (Mosaic Plots)
15.2 tl;dr
15.3 L’ordre des coupes
Il est préférable de dessiner des graphiques en mosaïque de façon incrémentale: commencez en coupant selon une variable, puis ajoutez des variables une par une. Le graphique en mosaïque complet devrait avoir une seule coupe par variable.
Important: si vos données sont dans un data frame, comme c’est le cas ci-dessous, la colonne count doit être appellée Freq
. (Aussi valable pour les tables et les matrices, voir ?vcd::structable
pour plus de détails.)
Veuillez aussi noter que ces graphiques sont dessinés avec vcd::mosaic()
et non la fonction en R élémentaire, mosaicplot()
.
Les données:
## Age Favorite Music Freq
## 1 old bubble gum classical 1
## 2 old bubble gum rock 1
## 3 old coffee classical 3
## 4 old coffee rock 1
## 5 young bubble gum classical 2
## 6 young bubble gum rock 5
## 7 young coffee classical 1
## 8 young coffee rock 0
Coupe uniquement selon Age
:
Coupe selon Age
, puis Music
:
Notez que la première coupe est entre “young” et “old”, tandis que la deuxième série de coupes divise chaque groupe d’âge entre “classical” et “rock”.
Coupe selon Age
, puis Music
, puis Favorite
:
15.4 Direction des coupes
Notez que dans l’exemple précédent, la direction des coupes est faite comme suit:
Age
– coupe horizontaleMusic
– coupe verticaleFavorite
– coupe horizontale
Il s’agit du schéma usuel de direction de coupes: les directions alternent en commençant par une coupe horizontale. On en déduit le même graphique avec:
Les directions peuvent être modifiées comme comme vous le souhaitez. Par exemple, pour créer un graphique de type “doubledecker”, toutes les coupes doivent être verticales sauf la dernière:
Notez que le vecteur des directions est ordonné selon l’ordre des coupes (Age
, Music
, Favorite
), et non selon l’ordre dans lequel les variables apparaissent dans la formule, où la dernière variable à être coupée apparaît en premier dans la formule, avant le “~”.
15.5 Couleur
15.5.1 Couleur de fond
15.5.2 Couleur de bordure (il faut également définir la couleur de fond(?))
15.6 Etiquettes
Pour la documentation officielle sur les options d’étiquettage, voir Labeling in the Strucplot Framework
15.6.1 Faire pivoter les étiquettes
Le vecteur rot_labels =
définit la rotation en degrés sur les quatre côtés du graphique–pas selon l’ordre de coupe des variables–dans cet ordre: haut, droite, bas, gauche. (C’est un ordre différent de l’ordre par défaut des graphiques élémentaires!) L’ordre par défaut est rot_labels = c(0, 90, 0, 90)
.
15.6.2 Alléger les étiquettes
Les étiquettes sont abrégées dans l’ordre des coupes (comme avec direction =
). L’algorithme d’abbréviation renvoit le nombre indiqué de charactères après suppression des voyelles (si nécessaire).
Pour plus d’options sur le format, voir >?vcd::labeling_border
.
15.7 Agencement des cellules
Pour plus de détails, voir >?vcd::spacings
15.7.1 Mosaïque en utilisant vcd::doubledecker
15.8 Mosaique en utilisant ggplot
Pour avoir une vue d’ensemble sur les graphiques en mosaïques avec ggplot, voir le lien ci-dessous. https://cran.r-project.org/web/packages/ggmosaic/vignettes/ggmosaic.html
library(ggmosaic)
# equivalent to doing Favorite ~ Age + Music in vcd::mosaic with doubledecker style cut
ggplot(df) +
geom_mosaic(
aes(x=product(Favorite, Age, Music), # cut from right to left
weight=Freq,
fill=Favorite
),
divider=c("vspine" , "hspine", "hspine") # equivalent to divider=ddecker()
)
15.9 Théorie
15.10 Quand l’utiliser
Quand vous voulez étudier les liens entre les variables d’un jeu de données Catégoriques Multivariées
15.11 Considerations
15.11.1 Etiquettes
La lisibilité des étiquettes pose problème dans les graphiques en mosaïque, particulièrement quand il y a beaucoup de dimensions. Ceci peut être allégé en - Racourcissant les noms - Faisant pivoter les étiquettes
15.11.2 Aspect Ratio
- Les longueurs sont plus faciles à évaluer que les aires. Essayez d’utiliser des rectangles de même épaisseur ou hauteur
- Les rectangles longs et fins sont préférables (on distinge plus facilement les longueurs que les aires)
15.11.3 Espace entre les rectangles
- Pas d’espace = le plus efficace
Néanmoins, un espace peut améliorer la lisibilitén donc essayez différentes combinaisons.
- On peut avoir des espaces au niveau des coupes
- On peut faire varier la taille des espaces selon la hierarchie
15.11.4 Couleur
- bien pour les rapports dans le sous-groupe
- Affiche les groupes résiduels
- met en avant un sous-groupe particulier
15.12 Ressources externes
Chapitre 7 de Graphical data analysis with R by Anthony Unwin
Lien: Une vue d’ensemble des graphiques en mosaïque avec ggplot au lien ci-joint.
with