CommencerCommencer gratuitement

Optimiser le graphique pour les appareils mobiles

Le titre de l’axe des x est déjà assez superflu, car vous avez ajouté des étiquettes pour les deux années. Vous allez maintenant ajouter des étiquettes de pays au graphique, de sorte que tous les axes puissent être supprimés.

Dans cet exercice, vous allez rencontrer quelque chose de probablement nouveau pour vous : il est possible de fournir de nouveaux jeux de données à des géométries individuelles comme geom_text(), afin que ces géométries n’utilisent pas le jeu de données passé à l’appel initial de ggplot(). Vous en aurez besoin ici, car vous ne souhaitez ajouter qu’une seule étiquette à chaque flèche. Si vous utilisiez le jeu de données d’origine ilo_data, deux étiquettes seraient ajoutées, car il y a deux observations par pays dans le jeu de données, une pour 1996 et une pour 2006.

Cet exercice fait partie du cours

Communiquer avec les données dans le tidyverse

Afficher le cours

Instructions

  • Un nouveau jeu de données median_working_hours a été créé afin qu’il n’y ait qu’une seule étiquette par pays. Examinez sa structure avec str().
  • Utilisez median_working_hours comme argument data dans un nouvel appel à geom_text() pour ajouter des étiquettes pour chaque pays.
    • Indiquez correctement les esthétiques requises pour geom_text() : x et label, qui doivent pointer vers la bonne variable dans le jeu de données median_working_hours.
  • Supprimez tous les axes et la grille de fond en utilisant la fonction element_blank() pour tous les arguments axis. et panel.grid dans l’appel theme() personnalisé.
  • Après avoir exécuté le code final, redimensionnez la fenêtre du graphique à droite pour simuler l’écran d’un appareil mobile en mode portrait (étroit et haut) – toutes les étiquettes rentreront dans la zone d’affichage du graphique.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Compute temporary data set for optimal label placement
median_working_hours <- ilo_data %>%
  group_by(country) %>%
  summarize(median_working_hours_per_country = median(working_hours)) %>%
  ungroup()

# Have a look at the structure of this data set
___

ilo_dot_plot +
  # Add label for country
  geom_text(data = ___,
            aes(y = country,
                x = ___,
                label = ___),
            vjust = 2,
            family = "Bookman",
            color = "gray25") +
  # Remove axes and grids
  theme(
    axis.ticks = ___,
    axis.title = ___,
    axis.text = ___,
    panel.grid = ___,
    # Also, let's reduce the font size of the subtitle
    plot.subtitle = element_text(size = 9)
  )
Modifier et exécuter le code