НачатьНачать бесплатно

Оптимизация графика для мобильных устройств

Подпись оси 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)
  )
Редактировать и запускать код