Optimera diagrammet för mobila enheter
Rubriken på x-axeln är redan ganska överflödig eftersom du har lagt till etiketter för båda åren. Nu ska du lägga till landetiketter i diagrammet, så att alla axlar kan tas bort.
I den här övningen stöter du på något som förmodligen är nytt för dig: Nya datamängder kan ges till enskilda geometrier som geom_text(), vilket innebär att dessa geometrier inte använder den datamängd som angavs i det inledande ggplot()-anropet. Det behöver du här eftersom du bara vill lägga till en etikett per pil. Om du använde den ursprungliga datamängden ilo_data skulle två etiketter läggas till per land, eftersom det finns två observationer för varje land – en för 1996 och en för 2006.
Den här övningen är en del av kursen
Kommunicera med data i Tidyverse
Övningsinstruktioner
- En ny datamängd,
median_working_hours, har skapats så att det bara finns en etikett per land. Titta på dess struktur medstr(). - Använd
median_working_hourssomdata-argument i ett nyttgeom_text()-anrop för att lägga till etiketter för varje land.- Ange rätt estetik för
geom_text():xochlabel, som ska peka på rätt variabel i datamängdenmedian_working_hours.
- Ange rätt estetik för
- Ta bort alla axlar och bakgrundsgallret genom att ange funktionen
element_blank()för allaaxis.- ochpanel.grid-argument i det anpassadetheme()-anropet. - Ändra storlek på diagramfönstret till höger efter att ha kört den slutliga koden, för att simulera en mobilskärm i stående läge (smal och hög) – alla etiketter ska passa inom diagrammets vy.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)
)