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
Instructions
- Un nouveau jeu de données
median_working_hoursa été créé afin qu’il n’y ait qu’une seule étiquette par pays. Examinez sa structure avecstr(). - Utilisez
median_working_hourscomme argumentdatadans un nouvel appel àgeom_text()pour ajouter des étiquettes pour chaque pays.- Indiquez correctement les esthétiques requises pour
geom_text():xetlabel, qui doivent pointer vers la bonne variable dans le jeu de donnéesmedian_working_hours.
- Indiquez correctement les esthétiques requises pour
- Supprimez tous les axes et la grille de fond en utilisant la fonction
element_blank()pour tous les argumentsaxis.etpanel.griddans l’appeltheme()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)
)