Визуализация является важнейшим инструментов 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-библиотек стоит подумать в следующих случаях:
- если нужен трехмерный график, которые не очень удобно строить в Matplotlib;
- требуется показать графики в репрезентативном виде, например, на конференциях. Разумеется, графики в Matplotlib выглядят вполне приемлемо, но более красивый вид можно получить в других библиотеках, например, Plotly.
2. Seaborn
Seaborn — это одна из Python-библиотек, которая построена на основе Matplotlib, но более высокоуровневая [2]. В результате, все, что можно построить в Matplotlib, можно построить в Seaborn. К тому же имеет дополнительные инструменты, например, heatmap и violin plots, а также встроенные темы оформления.
Seaborn можно использовать в следующих случаях:
- если вы знакомы с Matplotlib и при этом хотите получить более красивые диаграммы;
- если ваш основной Data Science инструмент – это Pandas, с которым Seaborn интегрируется довольно просто, аналогично Matplotlib;
- нужна визуализация статистических графиков, например, линейной регрессии.
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))
4. Altair
Altair – это простая и удобная библиотека Python для статистической визуализации, которая основана на Vega-Lite [4]. Altair позволяет быстро создавать множество разных статических и интерактивных графиков за несколько строк кода. Altair можно считать промежуточным звеном между Seaborn и Plotly, поскольку она более настраиваемая, чем Seaborn, но не настолько интерактивна как Plotly.
Возможные случаи использования:
- нужно быстро получить красивые результаты;
- если вы работаете с Pandas, поскольку, как и Seaborn, просто интегрируется с Altair;
- есть желание добавить интерактивность.
Однако, если не хотите разбираться с интерфейсом Altair, стоит рассмотреть другие варианты. Диаграммы Altair возвращают данные в формате JSON (JavaScript Object Notation), которые необходимо далее отрисовать с помощью Vega-Lite.
5. Plotly
Plotly – это библиотека для создания интерактивных визуализаций и управления ими [5]. В этой написанной на JavaScript библиотеке есть множество встроенных приложений для машинного обучения (Machine learning) и анализа данных, что упрощает реализацию и визуализацию разных алгоритмов. А вместе с фреймворком Dash можно создать фронтэнд ML-приложение, например, опубликовав GPT-3 (Generative Pre-Training) на сервере [7].
Причины для использования Plotly:
- требуется строить интерактивные диаграммы на Python;
- нужны анимации;
- хотите создавать красивые карты, научные или финансовые графики и 3D-диаграммы, чтобы показать их широкой публике.
Не рекомендуется использовать Plotly, если:
- вам не нужны сложные графики и интерактивность, а важен результат.
- не хотите разбираться со сложным интерфейсом.
6. Bokeh
Подобно Plotly, Bokeh – это библиотека на основе Javascript, которая позволяет реализовывать интерактивную визуализацию [7]. Bokeh имеет три уровня управления для разных типов пользователей. Самый высокий уровень позволяет создавать стандартные диаграммы, такие как столбчатые, точечные и т.д., о которых мы говорили тут. Средний уровень предлагает определённый уровень специфичности, как в Matplotlib, и позволяет контролировать основные строительные блоки каждой диаграммы. Наконец, самый низкий уровень даёт вам полный контроль над каждым элементом диаграммы.
Использоваться Bokeh следует, если:
- нужны анимации и красивые интерактивные диаграммы;
- требуется полный контроль над построением графиков.
Однако, рекомендуется выбирать другие библиотеки, если:
- нет времени разбираться со всеми настройками;
- хотите строить трёхмерные графики (в этом случает отлично подойдет Plotly).
7. Pygal
Pygal – это наиболее специфичная Python-библиотека с самыми разнообразными видами графиков, которые дополняют основные Data Science исследования. Pygal возвращает XML, который можно отобразить в браузере или сохранить график в формате SVG. Также возможен экспорт в PNG, однако, здесь потребуется установить дополнительные зависимости. Ниже рисунок с так называемым графиком Radar. Также в Pygal можно работать с простенькими картами.
Обычно, Pygal используется если вам нужны специфичные графики или простые карты.
Ещё больше подробностей о визуализации данных с реальными примерами Data Science вы узнаете на нашем специализированном курсе «VIP: Визуализация данных на языке Python» в лицензированном учебном центре обучения и повышения квалификации IT-специалистов в Москве.