Visualisations graphiques en R avec ggplot2

R pour les utilisateurs de SAS

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

Package ggplot2

logo autocollant hex ggplot2

  • ggplot2 est un puissant package graphique pour R
  • Les « GG » de ggplot signifient « grammar of graphics »
  • ggplot2 construit les graphiques par couches
  • On ajoute un ou plusieurs objets géométriques à la couche de base
R pour les utilisateurs de SAS

Couches – couche de base

# Create plot for x=sex and y=diameter
ggplot(data = abalone, aes(sex, diameter))
  • Définir la couche de base avec ggplot()
  • Indiquer data = abalone
  • Définir aes sur sex et diameter

  • Aucun objet graphique pour l'instant

  • L'axe x est prêt pour sex
  • L'axe y est prêt pour diameter
  • La grille est en place

environnement graphique ggplot2 sans boxplot

R pour les utilisateurs de SAS

Couches – ajouter le geom boxplot

# Add boxplot geometric object or geom
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot()
  • L'opérateur + ajoute une couche
  • Ajout du boxplot avec geom_boxplot()

  • Résultat : une série de boîtes

  • Diamètres d'abalones par sexe
  • F femelles, I juvéniles, M mâles

boxplots ggplot2 ajoutés

R pour les utilisateurs de SAS

Couches – ajouter un thème

# Add black white theme
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot() +
  theme_bw()
  • Ajouter une couche « theme » avec theme_bw()
  • Supprime le fond gris
  • Trace un encadré noir autour du graphique

boxplot ggplot2 avec thème noir et blanc

R pour les utilisateurs de SAS

Remplacer le geom boxplot par le geom violon

# Change to geom_violin()
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_violin() +
  theme_bw()
  • geom_violin remplace geom_boxplot
  • Crée une forme de violon
  • Reflète la densité de distribution
  • Un simple changement pour une nouvelle figure

diagramme en violon ggplot2

R pour les utilisateurs de SAS

Histogramme à une variable

# Make histogram of shuckedWeight
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram()
  • Créer un histogramme pour une variable
  • Une variable = un seul esthétisme
  • Ajouter geom_histogram()
  • Définir aes() sur shuckedWeight
  • Les couleurs par défaut sont à améliorer

histogramme ggplot2 tout noir

R pour les utilisateurs de SAS

Histogramme : ajouter des couleurs

# Make lines black and fill light blue
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • Modifier les paramètres graphiques
  • Définir la color des contours
  • Définir la fill des barres
  • Chaque option se place dans les ()
  • L'histogramme est bien plus lisible

histogramme ggplot2 barres bleues et contours noirs

R pour les utilisateurs de SAS

Histogramme : ajouter un titre et des axes

# Add x, y axis labels and title
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue") +
  xlab("Shucked Weight") +
  ylab("Frequency Counts") +
  ggtitle("Shucked Weights Histogram")
  • Améliorer les libellés des axes et le titre
  • Utiliser xlab() et ylab() pour les axes
  • Utiliser ggtitle() pour le titre
  • Cette figure est prête à être publiée !

histogramme ggplot2 avec axes et titre

R pour les utilisateurs de SAS

Créer un nuage de points

# Make scatterplot with geom_point()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point()
  • Un nuage de points aes requiert deux variables
  • geom_point() ajoute les points
  • Nuage de points de shellWeight selon rings

nuage de points ggplot2 shellweight selon rings

R pour les utilisateurs de SAS

Nuage de points : ajouter une courbe lissée

# Add smoothed fit line
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth()
  • Ajouter la courbe geom_smooth() au nuage de points
  • Inclut une zone d'intervalle de confiance ombrée

nuage de points ggplot2 avec courbe lissée

R pour les utilisateurs de SAS

Créer des panneaux par une autre variable

# Add panels using facet_wrap()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(vars(sex))
  • Ajouter une couche supplémentaire au nuage de points
  • Créer des panneaux pour chaque sexe d'abalone
  • Ajouter la couche facet_wrap()
  • vars(sex) définit la variable des panneaux

nuage de points ggplot2 avec 3 panneaux par sexe

R pour les utilisateurs de SAS

Suite du cours

  • Le chapitre 1 se termine par une brève intro aux graphiques
    • Base de compétences graphiques avec ggplot2
    • Visualiser les mesures d'abalone par sexe
  • Le chapitre 2 aborde le traitement des données
    • Nettoyer le jeu de données abalone
  • Le chapitre 3 couvre l'exploration des données
    • statistiques descriptives, corrélations et tests de comparaison
  • Le chapitre 4 traite de la modélisation et de la présentation
    • prédire l'âge des abalones à partir des mesures
    • explorer les modèles selon le sexe
R pour les utilisateurs de SAS

Créons quelques graphiques pour les abalones

R pour les utilisateurs de SAS

Preparing Video For Download...