12 Библиотек визуализации данных на Python, которые можно использовать для бизнес-анализа

Автор: Дмитрий Иванов [Команда P9X]

~8 минут чтения

Обновление за октябрь 2022 года: в стандартную среду ноутбуков добавлены Python 3.9 и новые библиотеки

Пролистайте указатель пакетов Python и вы найдёте библиотеки практически для любых задач визуализации данных — от GazeParser для исследований движений глаз до pastalog для визуализации в реальном времени обучения нейронных сетей. И хотя многие из этих библиотек ориентированы на выполнение конкретной задачи, некоторые можно использовать независимо от вашей области.

Этот список представляет собой обзор 12 междисциплинарных библиотек Python для визуализации данных, от известных до малоизвестных. Ноутбуки Mode поддерживают пять библиотек из этого списка — matplotlib, Seaborn, Plotly, pygal и Folium — и более 60 других, с которыми вы можете ознакомиться на странице поддержки ноутбуков.

Мы надеемся, что этот список вдохновит вас, и если вы хотите добавить библиотеку, которой нет в списке, воспользуйтесь нашими инструкциями по установке дополнительных библиотек или отправьте сообщение на success [at] modeanalytics [dot com].

Живая еженедельная демонстрация Mode

Присоединяйтесь к нашей групповой демонстрации, чтобы вместе изучить Mode!

Сохраните своё место!

Matplotlib

Две гистограммы (matplotlib)

Matplotlib — это первопроходец среди библиотек Python для визуализации данных. Несмотря на то что ей больше десяти лет, она по-прежнему наиболее широко используется для построения графиков в сообществе Python. Она была разработана так, чтобы быть похожей на MATLAB, проприетарный язык программирования, разработанный в 1980-х годах.

Поскольку matplotlib была первой библиотекой Python для визуализации данных, многие другие библиотеки построены на её основе или разработаны для совместной работы с ней во время анализа. Некоторые библиотеки, такие как pandas и Seaborn, являются «обёртками» над matplotlib. Они позволяют вам получить доступ к ряду методов matplotlib с меньшим количеством кода.

Хотя matplotlib хороша для того, чтобы получить представление о данных, она не очень полезна для быстрого и лёгкого создания диаграмм качества публикации. Как отмечает Крис Моффитт в своём обзоре инструментов визуализации Python, matplotlib «чрезвычайно мощна, но с этой мощью приходит сложность».

Matplotlib давно критикуют за её стили по умолчанию, которые напоминают о 1990-х годах. Текущая версия matplotlib 3.5.3 всё ещё отражает этот стиль.

Создано Джоном Д. Хантером, доступно в Mode. Где узнать больше: matplotlib.org.

Попробуйте matplotlib в Mode.

Хотите освежить свои навыки работы с Python? Посмотрите наше руководство, чтобы узнать, как анализировать и визуализировать данные с помощью Python.

Seaborn

Violinplot (Michael Waskom)

Seaborn использует возможности matplotlib для создания красивых диаграмм за несколько строк кода. Ключевое отличие — стили по умолчанию и цветовые палитры Seaborn, которые разработаны так, чтобы быть более эстетичными и современными. Поскольку Seaborn построен на основе matplotlib, вам нужно знать matplotlib, чтобы настроить параметры Seaborn по умолчанию.

Создано Майклом Васкомом, доступно в Mode. Где узнать больше: http://web.stanford.edu/~mwaskom/software/seaborn/index.html.

Попробуйте Seaborn в Mode.

Plotnine (ggplot2)

Изменение ранга (Plotnine)

Plotnine — это реализация Python ggplot2, системы построения графиков на языке R, и концепций из «Грамматики графики». Это мощный пакет для визуализации, в котором вы объединяете компоненты для создания полного графика. Например, вы можете начать с осей, затем добавить точки, затем линию, тренд и т. д. Как функциональный порт ggplot2, программисты R, знакомые с ggplot2, найдут Plotnine лёгким для перехода.

Plotnine тесно интегрирован с pandas, поэтому лучше хранить ваши данные в DataFrame при использовании Plotnine.

Создано Хасаном Кибириге (ознакомьтесь с его интервью с нами). Где узнать больше: https://plotnine.readthedocs.io/en/stable/index.html.

Bokeh

Интерактивная статистика погоды для трёх городов (Bokeh)

Как и ggplot, Bokeh основан на «Грамматике графики», но в отличие от ggplot он создан для Python, а не перенесён из R. Его сила заключается в способности создавать интерактивные, готовые к работе в сети графики, которые можно легко вывести в виде объектов JSON, HTML-документов или интерактивных веб-приложений. Bokeh также поддерживает потоковые данные и данные в реальном времени.

Bokeh предоставляет три интерфейса с разным уровнем контроля для размещения разных типов пользователей. Высший уровень предназначен для быстрого создания диаграмм. Он включает методы для создания общих диаграмм, таких как гистограммы, ящиковые диаграммы и гистограммы. Средний уровень имеет такую же специфику, как matplotlib, и позволяет вам управлять базовыми строительными блоками каждой диаграммы (например, точками в точечной диаграмме). Самый низкий уровень ориентирован на разработчиков и инженеров-программистов. Он не имеет предустановленных параметров по умолчанию и требует от вас определения каждого элемента диаграммы.

Создано Anaconda. Где узнать больше: http://bokeh.pydata.org/en/latest/.

Pygal

Диаграмма размаха (Florian Mounier)

Как и Bokeh и Plotly, pygal предлагает интерактивные графики, которые можно встроить в веб-браузер. Его главное отличие — возможность выводить диаграммы в формате SVG. Пока вы работаете с небольшими наборами данных, SVG подойдут вам как нельзя лучше и будут очень полезны для включения диаграмм в ваши презентации данных или отчёты. Но если вы создаёте диаграммы с сотнями тысяч точек данных, у них будут проблемы с рендерингом и они станут вялыми.

Поскольку каждый тип диаграммы упакован в метод, а встроенные стили довольно красивы, легко создать красивую диаграмму за несколько строк кода.

Создано Флорианом Муньером. Где узнать больше: http://www.pygal.org/en/latest/index.html.

Попробуйте pygal в Mode.

Learn more

Узнайте, какие визуализации вы можете создать в Mode

Узнайте о Visual Explorer.

Узнайте больше.

Plotly

Линейный график (Plotly)

Возможно, вы знаете Plotly как один из лучших инструментов для визуализации данных, но знаете ли вы, что вы можете получить доступ к его возможностям из ноутбука Python? Как и Bokeh, Plotly специализируется на создании интерактивных графиков, но предлагает некоторые диаграммы, которых нет в большинстве библиотек, например, контурные диаграммы, дендрограммы и трёхмерные диаграммы.

Создано Plotly, доступно в Mode. Где узнать больше: https://plot.ly/python/.

Попробуйте Plotly в Mode.

Geoplotlib

Хороплет (Andrea Cuttone)

Geoplotlib — это набор инструментов для создания карт и построения географических данных. Вы можете использовать его для создания различных типов карт, таких как хороплет, тепловые карты и точечные карты плотности. Для использования geoplotlib необходимо установить Pyglet (объектно-ориентированный интерфейс программирования). Тем не менее, поскольку большинство библиотек Python для визуализации данных не предлагают карты, приятно иметь библиотеку, посвящённую исключительно им.

Создано Андреа Куттоне. Где узнать больше: https://github.com/andrea-cuttone/geoplotlib.

Gleam

Точечная диаграмма с линией тренда (David Robinson)

Gleam вдохновлён пакетом R Shiny. Он позволяет вам превращать анализы в интерактивные веб-приложения, используя только скрипты Python, поэтому вам не нужно знать другие языки, такие как HTML, CSS или JavaScript. Gleam работает с любой библиотекой Python для визуализации данных. После того как вы создали график, вы можете построить поля поверх него, чтобы пользователи могли фильтровать и сортировать данные.

Создано Дэвидом Робинсоном. Где узнать больше: https://github.com/dgrtwo/gleam.

Missingno

Матрица нулей (Aleksey Bilogur)

Работа с пропущенными данными — это боль. Missingno позволяет вам быстро оценить полноту набора данных с помощью визуального резюме, вместо того чтобы пробираться через таблицу. Вы можете фильтровать и сортировать данные по полноте или находить корреляции с помощью тепловой карты или дендрограммы.

Создано Алексеем Билогуром. Где узнать больше: https://github.com/ResidentMario/missingno.

Leather

Сетка диаграмм с согласованными шкалами (Christopher Groskopf)

Создатель Leather, Кристофер Гроскопф, говорит об этом так: «Leather — это библиотека диаграмм Python для тех, кому нужны диаграммы сейчас и которым всё равно, будут ли они идеальными». Она разработана для работы со всеми типами данных и создаёт диаграммы в формате SVG, поэтому вы можете масштабировать их без потери качества изображения. Поскольку эта библиотека относительно нова, часть документации всё ещё находится в разработке. Диаграммы, которые вы можете создавать, довольно просты — но в этом и заключается их цель.

Создано Кристофером Гроскопфом. Где узнать больше: https://leather.readthedocs.io/en/latest/index.html.

Altair

Паровой график (Altair)

Как и Seaborn, Altair — это декларативная библиотека визуализации, которая позволяет вам создавать эстетически приятные графики и диаграммы; но в отличие от Seaborn, основанного на Matplotlib, Atair основан на Vega и Vega-Lite. Он отлично подходит для создания интерактивных визуализаций легко и быстро. Его недостатки заключаются в том, что он не выглядит так хорошо, как plotly или bokeh, и некоторые пользователи испытывают трудности при расположении его компонентов.

Создано Джейком Вандерпласом и Брайаном Грейнджером. Где узнать больше: https://altair-viz.github.io/index.html.

Folium

Мультиполилиния (Folium)

Folium — это библиотека с открытым исходным кодом, основанная на возможностях обработки данных python и картографических возможностях leaflet.js (библиотека JavaScript). Она позволяет вам визуализировать геопространственные данные. Вы можете создавать различные интерактивные карты, такие как хороплетные карты, точечные карты, пузырьковые карты, тепловые карты и т. д. Одним из мощных элементов Folium являются различные плагины, такие как Markercluser, ScrollZoomToggler, DualMap, которые позволяют вам оборачивать карты leaflet и расширять их функциональность.

Создано Folium. Где узнать больше: https://github.com/python-visualization/folium.

Другие интересные материалы о визуализации данных в Python

Существует множество отличных оценок и обзоров библиотек Python для визуализации данных. Ознакомьтесь с некоторыми из наших любимых:

Нет опыта программирования? Нет проблем. Изучите Python, используя реальные данные, с помощью нашего бесплатного руководства.

Рекомендуемые статьи