Visualisations graphiques en R avec ggplot2

R pour les utilisateurs de SAS

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

Package ggplot2

logo hexsticker ggplot2

  • ggplot2 est un puissant package graphique pour R
  • Le « GG » de ggplot renvoie à la « grammaire des graphiques »
  • ggplot2 construit les figures 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()
  • Fixer data = abalone
  • Définir aes sur sex et diameter

  • Aucun objet géométrique 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 geom_boxplot()

  • Résultat : une série de boxplots

  • Diamètres d'abalone 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 violin

# 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é des données
  • 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 = une esthétique
  • Ajouter geom_histogram()
  • Définir aes() sur shuckedWeight
  • Les couleurs par défaut sont à modifier

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 règle dans les ()
  • L'histogramme est bien plus lisible

histogramme ggplot2 barres bleues et contours noirs

R pour les utilisateurs de SAS

Histogramme : ajouter titre et 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")
  • Ajouter de meilleurs titres d'axes et un titre
  • Utiliser xlab() et ylab() pour les axes
  • Utiliser ggtitle() pour le titre
  • Cette figure est prête à être publiée !

histogramme ggplot2 avec titres d'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 nécessite deux variables
  • geom_point() ajoute les points
  • Poids de coquille selon le nombre d'anneaux

nuage de points ggplot2 shellweight par 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 par 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
    • bases des compétences graphiques avec ggplot2
    • visualiser les mesures d'abalone selon le sexe
  • Le chapitre 2 traite du nettoyage de données
    • mise au propre du 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 aborde la modélisation et la présentation
    • prédire l'âge des abalones à partir des mesures
    • explorer les modèles par sexe
R pour les utilisateurs de SAS

Créons quelques graphiques pour les abalones

R pour les utilisateurs de SAS

Preparing Video For Download...