«Дисклеймер: мною использовался новый модуль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).

Ресурсы

Читайте также:


Перевод статьи AMR: Recreating Gapminder Animation in 2 lines of Python with Plotly Express

Предыдущая статьяНасколько хорошо вы разбираетесь в Node.js?
Следующая статьяСоздание компонента Timeline с React