Создание анимации Gapminder двумя строчками кода с помощью Plotly Express
Дисклеймер: мною использовался новый модуль
plotly_express
, сама анимация Gapminder не создавалась с нуля всего двумя строчками.
Один из значимых моментов в истории визуализации данных — презентация Гансом Рослингом знаменитой анимации Gapminder на TED, которое вскоре получило огромное число просмотров. С этого момента создание такой же анимации стало показателем мастерства в области визуализации данных наравне с работами Эдварда Тафти или Нейта Сильвера.
Недавно Plotly (известная дополнением для интерактивной визуализации для R и Python) выпустила новое расширение/модуль/библиотеку под названием Plotly Express. Как понятно из названия, цель plotly express
— стать высокоуровневым, лёгким и быстрым в использовании API для создания интерактивной визуализации.
Иерархия примерно такова:
Plotly Express:Plotly.py :: Seaborn:Matplotlib
Вдохновлённая ggplot2
для R и seaborn
для Python, plotly express
максимально проста. Все операции выполняются лишь в одну строчку. В этой статье я покажу, как создать анимацию, похожую на знаменитую анимацию Gapminder, используя только plotly express
.
Установка
pip3 install plotly_express
Импорт библиотеки с сокращением названия:
import plotly_express as px
Анимация пузырькового графа или анимация Gapminder
px.scatter(px.data.gapminder(), x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
size="pop", color="country", hover_name="country",
log_x = True,
size_max=45, range_x=[100,100000], range_y=[25,90])
Функция px.scatter()
довольно незамысловатая. Она получает данные из px.data.gapminder()
и определяет оси через параметры x
и y
. Параметр для кадров определяется через animation_frame
. В нашем случае это год, значение которого увеличивается с каждым последующим кадром. При помощи ещё нескольких аргументов, передаваемых функции, мы украшаем график (определяем размер и цвета пузырьков) и он готов!
Заключение
Цель этого поста — рассказать миру о plotly_express
, которая является отличной библиотекой для создания красивых интерактивных визуализаций (схожая с highcharter
в R).