Optymalizacja wykresu pod urządzenia mobilne
Tytuł osi X jest już właściwie zbędny, ponieważ dodano etykiety dla obu lat. Teraz dodasz etykiety krajów do wykresu – dzięki temu wszystkie osie będą mogły zostać usunięte.
W tym ćwiczeniu spotkasz się z czymś, co może być dla ciebie nowością: poszczególnym geometriom, takim jak geom_text(), można przekazać osobny zbiór danych, niezależny od tego podanego w wywołaniu ggplot(). Przyda się to tutaj, ponieważ chcesz dodać jedną etykietę do każdej strzałki. Gdybyś użyć oryginalnego zbioru ilo_data, dla każdego kraju pojawiłyby się dwie etykiety – jedna dla roku 1996 i jedna dla 2006.
To ćwiczenie jest częścią kursu
Komunikacja danych w Tidyverse
Instrukcje do ćwiczenia
- Utworzono nowy zbiór danych
median_working_hours, dzięki czemu każdy kraj będzie miał tylko jedną etykietę. Przyjrzyj się jego strukturze za pomocąstr(). - Użyj
median_working_hoursjako argumentudataw nowym wywołaniugeom_text(), aby dodać etykiety dla każdego kraju.- Poprawnie określ wymagane właściwości estetyczne dla
geom_text():xorazlabel, wskazując na odpowiednie zmienne ze zbiorumedian_working_hours.
- Poprawnie określ wymagane właściwości estetyczne dla
- Usuń wszystkie osie i siatkę tła, podając funkcję
element_blank()dla wszystkich argumentówaxis.orazpanel.gridw niestandardowym wywołaniutheme(). - Po uruchomieniu finalnego kodu zmień rozmiar okna wykresu po prawej stronie, symulując ekran urządzenia mobilnego w trybie pionowym (wąski i wysoki) – wszystkie etykiety powinny zmieścić się w obszarze wykresu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)
)