Оптимизация графика для мобильных устройств
Подпись оси x уже является лишней, поскольку вы добавили метки для обоих лет. Теперь вы добавите на график подписи стран, после чего все оси можно будет удалить.
В этом упражнении вы столкнётесь с кое-чем новым: отдельным геометрическим объектам, например geom_text(), можно передавать собственные наборы данных — тогда эти объекты не используют данные, переданные в исходный вызов ggplot(). В данном случае это необходимо, потому что вы хотите добавить одну подпись к каждой стрелке. Если использовать исходный набор данных ilo_data, для каждой страны появятся две подписи, так как в нём хранится по два наблюдения на страну — за 1996 и за 2006 год.
Это упражнение является частью курса
Визуализация данных в Tidyverse
Инструкции к упражнению
- Был создан новый набор данных
median_working_hours, чтобы для каждой страны отображалась только одна подпись. Изучите его структуру с помощьюstr(). - Передайте
median_working_hoursв аргументdataнового вызоваgeom_text(), чтобы добавить подписи для каждой страны.- Правильно задайте обязательные эстетики для
geom_text():xиlabel— они должны ссылаться на соответствующие переменные из набора данныхmedian_working_hours.
- Правильно задайте обязательные эстетики для
- Удалите все оси и фоновую сетку, указав функцию
element_blank()для всех аргументовaxis.иpanel.gridв пользовательском вызовеtheme(). - После запуска итогового кода измените размер окна графика справа, чтобы имитировать экран мобильного устройства в портретной ориентации (узкий и высокий) — все подписи должны уместиться в области графика.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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)
)