Источник: Nuances of Programming
«Дисклеймер: мною использовался новый модуль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 и y. Параметр для кадров определяется через animation_frame. В нашем случае это год, значение которого увеличивается с каждым последующим кадром. При помощи ещё нескольких аргументов, передаваемых функции, мы украшаем график (определяем размер и цвета пузырьков) и он готов!
Заключение
Цель этого поста — рассказать миру о plotly_express, которая является отличной библиотекой для создания красивых интерактивных визуализаций (схожая с highcharter в R).
Ресурсы
- Введение в Plotly Express (на английском)
Читайте также:
Читайте нас в телеграмме и vk
Перевод статьи AMR: Recreating Gapminder Animation in 2 lines of Python with Plotly Express