7 самых популярных Python-библиотек для визуализации данных в Data Science

Визуализация является важнейшим инструментов Data Science, поскольку помогает наиболее полно понять данные. Сегодня мы поговорим о 7 популярных библиотеках визуализации данных для Python.

Статические и интерактивные диаграммы

Прежде чем мы приступим к разбору библиотек, разберемся с основными видами диаграмм, которые бывают статические и интерактивные.
Статические диаграммы — это графики, которые не изменяются, а представляют собой обычные картинки. Однако, с интерактивными диаграммами можно взаимодействовать, изменяя их в режиме онлайн, поэтому такие диаграммы часто используют JavaScript и отображаются только в браузере или в Jupyter.
Интерактивные диаграммы обладают приятным видом и удобны для длительного исследования данных, но могут иметь сложный интерфейс, который придётся изучить. Справедливости ради, отметим, что библиотеки Matplotlib и Seaborn производят статические диаграммы, но в Jupyter Notebook с дополнительными настройками они могут стать интерактивными.

1. Matplotlib

Самая используемая Python-библиотека для визуализации — это Matplotlib [1]. Она очень проста, богата на инструменты и строит статические диаграммы за пару строчек кода, именно за это её так ценят Data Scientist’ы. Кроме того, Matplotlib используют другие библиотеки в качестве обёртки, например, Pandas и Seaborn.
Matplotlib стоит использовать в следующих случаях:

  • если вы знакомы с MATLAB, поскольку интерфейс очень схож, только написан для Python.
  • требуется быстро проверить гипотезу, т.к. Matplotlib не требует особого изучения интерфейса.
Пример графика в Python-библиотеке Maplotlib
График в Matplotlib

Над использованием других Python-библиотек стоит подумать в следующих случаях:

  • если нужен трехмерный график, которые не очень удобно строить в Matplotlib;
  • требуется показать графики в репрезентативном виде, например, на конференциях. Разумеется, графики в Matplotlib выглядят вполне приемлемо, но более красивый вид можно получить в других библиотеках, например, Plotly.

2. Seaborn

Seaborn — это одна из Python-библиотек, которая построена на основе Matplotlib, но более высокоуровневая [2]. В результате, все, что можно построить в Matplotlib, можно построить в Seaborn. К тому же имеет дополнительные инструменты, например, heatmap и violin plots, а также встроенные темы оформления.
Seaborn можно использовать в следующих случаях:

  • если вы знакомы с Matplotlib и при этом хотите получить более красивые диаграммы;
  • если ваш основной Data Science инструмент – это Pandas, с которым Seaborn интегрируется довольно просто, аналогично Matplotlib;
  • нужна визуализация статистических графиков, например, линейной регрессии.
Пример графика в Python-библиотеке Seaborn
График в Seaborn

3. Missingno

Каждый раз при старте нового проекта Data Science нужно будет провести некоторое исследование данных, чтобы лучше понять данные. При этом часто приходится сталкиваться с отсутствием некоторых значений в датасете. Для оценки отсутствующих значений пригодится Missingno, которая отфильтрует и визуализирует их в виде баров, матрицы, тепловой матрицы (heatmap) или дендограммы (dendrogram) [3].
Missingno может пригодиться в следующих случаях:

  • требуется полное исследование данных на наличие пропусков (отсутствующих значений);
  • нужно проверить корреляцию между атрибутами.

Ниже приведён пример на Python и результат в виде матрицы, где белым цветом отображаются пустые значения (None).

import missingno as msno

x = [1, 5, 3, None, 8, None, 10, None]
y = [4, None, 5, 6, 7, None, None, None]
df = pd.DataFrame({'x': x, 'y': y})
ax = msno.matrix(df, figsize=(8,3))
Пример графика в Python-библиотеке Missingno
Матрица пустых значений в Missingno

4. Altair

Altair – это простая и удобная библиотека Python для статистической визуализации, которая основана на Vega-Lite [4]. Altair позволяет быстро создавать множество разных статических и интерактивных графиков за несколько строк кода. Altair можно считать промежуточным звеном между Seaborn и Plotly, поскольку она более настраиваемая, чем Seaborn, но не настолько интерактивна как Plotly.
Возможные случаи использования:

  • нужно быстро получить красивые результаты;
  • если вы работаете с Pandas, поскольку, как и Seaborn, просто интегрируется с Altair;
  • есть желание добавить интерактивность.

Однако, если не хотите разбираться с интерфейсом Altair, стоит рассмотреть другие варианты. Диаграммы Altair возвращают данные в формате JSON (JavaScript Object Notation), которые необходимо далее отрисовать с помощью Vega-Lite.

Пример графика в библиотеке Altair
График в Altair

5. Plotly

Plotly – это библиотека для создания интерактивных визуализаций и управления ими [5]. В этой написанной на JavaScript библиотеке есть множество встроенных приложений для машинного обучения (Machine learning) и анализа данных, что упрощает реализацию и визуализацию разных алгоритмов. А вместе с фреймворком Dash можно создать фронтэнд ML-приложение, например, опубликовав GPT-3 (Generative Pre-Training) на сервере [7].
Причины для использования Plotly:

  • требуется строить интерактивные диаграммы на Python;
  • нужны анимации;
  • хотите создавать красивые карты, научные или финансовые графики и 3D-диаграммы, чтобы показать их широкой публике.

Не рекомендуется использовать Plotly, если:

  • вам не нужны сложные графики и интерактивность, а важен результат.
  • не хотите разбираться со сложным интерфейсом.
Пример графика в библиотеке Plotly
Интерактивный график в Plotly

6. Bokeh

Подобно Plotly, Bokeh – это библиотека на основе Javascript, которая позволяет реализовывать интерактивную визуализацию [7]. Bokeh имеет три уровня управления для разных типов пользователей. Самый высокий уровень позволяет создавать стандартные диаграммы, такие как столбчатые, точечные и т.д., о которых мы говорили тут. Средний уровень предлагает определённый уровень специфичности, как в Matplotlib, и позволяет контролировать основные строительные блоки каждой диаграммы. Наконец, самый низкий уровень даёт вам полный контроль над каждым элементом диаграммы.
Использоваться Bokeh следует, если:

  • нужны анимации и красивые интерактивные диаграммы;
  • требуется полный контроль над построением графиков.

Однако, рекомендуется выбирать другие библиотеки, если:

  • нет времени разбираться со всеми настройками;
  • хотите строить трёхмерные графики (в этом случает отлично подойдет Plotly).
Пример графика в библиотеке Bokeh
Интерактивный график в Bokeh

7. Pygal

Pygal – это наиболее специфичная Python-библиотека с самыми разнообразными видами графиков, которые дополняют основные Data Science исследования. Pygal возвращает XML, который можно отобразить в браузере или сохранить график в формате SVG. Также возможен экспорт в PNG, однако, здесь потребуется установить дополнительные зависимости. Ниже рисунок с так называемым графиком Radar. Также в Pygal можно работать с простенькими картами.

Пример графика в Pygal
График (radar) в Pygal

Обычно, Pygal используется если вам нужны специфичные графики или простые карты.

 

Ещё больше подробностей о визуализации данных с реальными примерами Data Science вы узнаете на нашем специализированном курсе «VIP: Визуализация данных на языке Python» в лицензированном учебном центре обучения и повышения квалификации IT-специалистов в Москве.

Источники
  1. https://matplotlib.org/
  2. https://seaborn.pydata.org/index.html
  3. https://github.com/ResidentMario/missingno
  4. https://altair-viz.github.io/
  5. https://plotly.com/
  6. https://dash-gallery.plotly.host/dash-gpt3-bars/
  7. https://bokeh.org/
  8. http://www.pygal.org/en/stable/

Добавить комментарий

Поиск по сайту