Анимированные гистограммы, которые можно встроить прямо в публикацию на любом сайте, становятся все более популярными. Они отображают динамику изменений любых характеристик за определенное время и делают это наглядно. Давайте посмотрим, как их создать при помощи R и универсальных пакетов.
Эти два крайне необходимы. Кроме того, потребуются tidyverse, janitor и scales для управления данными, очистки массива и форматирования соответственно.
معلومات
Оригинальный набор данных, который мы будем использовать в этом проекте, загружается с сайта Всемирного банка. Вот они — WorldBank Data. Те же данные, если они вам нужны в готовом виде, можно загрузить из папки проекта.
Что это за информация? Выборка содержит значение ВВП большинства стран за несколько лет (с 2000 по 2017 годы).
د معلوماتو پروسس کول
Мы будем использовать код, размещенный ниже, для подготовки необходимого формата данных. Очищаем названия столбцов, превращаем цифры в числовой формат и конвертируем данные при помощи функции gather(). Все, что получено, сохраняем в gdp_tidy.csv для дальнейшего использования.
Построение полного набора актуальных гистограмм с использованием ggplot2.
Анимирование статических гистограмм с желаемыми параметрами при помощи gganimate.
Финальный шаг — рендеринг анимации в желаемом формате, включая GIF или MP4.
Загрузка библиотек
library(tidyverse)
library(gganimate)
د معلوماتو مدیریت
На этом шаге надо отфильтровать данные для получения топ-10 стран каждого года. Добавим несколько колонок, которые позволят отображать легенду для гистограммы.
gdp_tidy <- read_csv("./data/gdp_tidy.csv")
gdp_formatted <- gdp_tidy %>%
group_by(year) %>%
# The * 1 makes it possible to have non-integer ranks while sliding
mutate(rank = rank(-value),
Value_rel = value/value[rank==1],
Value_lbl = paste0(" ",round(value/1e9))) %>%
group_by(country_name) %>%
filter(rank <=10) %>%
ungroup()
Построение статических гистограмм
Теперь, когда у нас есть пакет данных в нужном формате, начинаем отрисовку статических гистограмм. Базовая информация — топ-10 стран с максимальным ВВП за выбранный интервал времени. Графики строим для каждого года.
Строить графики с использованием ggplot2 весьма просто. Как вы можете видеть в участке кода выше, есть несколько ключевых моментов с функцией theme (). Они необходимы, чтобы все элементы анимировались без проблем. Некоторые из них можно и не отображать при необходимости. Пример: прорисовываются только вертикальные линии сетки и легенды, а вот заголовки осей и еще несколько компонентов удаляются с участка.
حرکتونه
Ключевая функция здесь — transition_states(), она склеивает отдельные статические графики. view_follow () используется для прорисовки линий сетки.
anim = staticplot + transition_states(year, transition_length = 4, state_length = 1) +
view_follow(fixed_x = TRUE) +
labs(title = 'GDP per Year : {closest_state}',
subtitle = "Top 10 Countries",
caption = "GDP in Billions USD | Data Source: World Bank Data")
وړاندې کول
После того, как анимация создана и сохранена в объекте anim, приходит время ее визуализировать с помощью функции animate (). Рендерер, используемый в animate (), может быть разным в зависимости от типа требуемого выходного файла.