Python: Визуализация данных
Теория: Библиотека Matplotlib
Для визуализации данных в Python есть ряд готовых библиотек — Matplotlib, Seaborn, Plotly, Pandas. Эти решения уже хорошо зарекомендовали себя в среде разработчиков и аналитиков. Этот список регулярно пополняется, но при этом среди всех библиотек стоит выделить Matplotlib. Многие решения считаются надстройкой над ней, наследуя ее ядро — базовые объекты и методы.
Matplotlib остается на бэкенде у многих библиотек и не используется для построения графиков отдельно от них. Это происходит, потому что аналитики хотят работать с более удобными инструментами визуализации и писать меньше кода для ее реализации.
При этом аналитик не может строить сложные графики с помощью более высокоуровневых библиотек, если он не знает основные принципы визуализации в Matplotlib. Поэтому в этом уроке мы разберем важные объекты этой библиотеки и методы их визуализации.
Импортирование библиотеки Matplotlib
Библиотека Matplotlib включает в себя множество модулей, которые отвечают за реализацию ее основных объектов: фигур, линий, стилей, шрифтов и других визуальных объектов. Обычно разработчикам не нужно глубоко погружаться во все нюансы реализации. Достаточно использовать модуль pyplot, который отвечает за реализацию визуализации.
Импорт модулей выглядит так:
Эти сокращения не обязательны, но они приняты в среде разработчиков, поэтому рекомендуем использовать их. После импорта необходимых модулей можно переходить к графикам. Начнем с базовых примеров с основными элементами.
Примеры простых графиков
Для построения графиков Matplotlib достаточно воспользоваться тремя методами:
- Метод
plt.plot()строит линейный график, но могут быть другие варианты - Метод
plt.show()выводит график на экран - Метод
plt.savefig()сохраняет график в файл, его можно использовать вместоplt.show()
Посмотрим, как это работает на практике:

На этом графике показаны значения списков x и y. График линейный, поэтому точки на графике соединены отрезками. Чтобы добавить название конкретного графика и области, в которой он отрисован, воспользуемся следующими методами:
- Метод
plt.legend()отрисовывает название графика (легенду), указанное в параметреlabelметодаplt.plot() - Метод
plt.title()отрисовывает название области, само название передается параметром

В области отрисовки может находиться не один график, а несколько. В примере ниже вы видите два графика с разными названиями:

Еще на графике выше появились названия осей координат и координатная сетка. Это реализовано с использованием методов:
- Для названия осей —
plt.xlabel()иplt.ylabel() - Для координатной сетки
plt.grid()
Прямое использование методов модуля plt упрощает работу с простыми графиками, но для более сложных объектов оно не подходит. Далее мы рассмотрим метод plt.subplots(), который позволяет гибко настраивать графики и работать с более сложными визуализациями.
Основные компоненты графика Matplotlib
Чтобы настроить визуальные представления в Matplotlib, воспользуемся методом plt.subplots(). Он возвращает два объекта:
Figure— полотно, на котором мы расположим всю визуализациюAxes— области визуализации, на которых мы разместим все видимые объекты
В примере ниже вы увидите реализацию линейного графика с помощью метода plt.subplots(). Объект Figure присваивается переменной fig, а объект Axes — переменной ax. Отметим, что некоторые методы визуализации изменились на методы с префиксом set_:
set_title()set_xlabel()set_ylabel()
При этом метод plt.show() остался без изменения. Он отрисовывает фигуру со всеми областями визуализации:

Областей визуализации может быть несколько. Они располагаются в виде сетки, размеры которой задаются параметрами метода plt.subplots(nrows, ncols). В примере ниже показана сетка размером в одну строку и два столбца. Настройка размера всей фигуры и ее название можно реализовать методами fig.set_size_inches() и fig.suptitle() соответственно.
Советуем изучить код ниже — именно этого стиля стоит придерживаться, чтобы повысить читабельность ваших реализаций на Matplotlib:

Каждая область визуализации определяется индексом и настраивается отдельно друг от друга. На картинке область с индексом 0 содержит график plot, а область с индексом 1 — график plot + 2. Нумерация областей ведется слева направо и сверху вниз.
Последним примером в уроке рассмотрим дополнительные визуальные объекты на графиках и их конфигурации. Дополним реализацию следующими параметрами:
marker— форма отрисовки точки на графикеcolor— цвет линии графикаlinestyle— стиль линии
Так это выглядит на практике:

В этом примере мы собрали самые распространенные элементы визуализации, с помощью которых можно строить сложные представления в рамках одной фигуры:
- Делать сетку графиков
- Определять стили линий, подписей, осей и других визуальных элементов
- Настраивать параметры отображения фигуры такие, как размер картинки и название
Выводы
В этом уроке мы познакомились с основными объектами библиотеки Matplotlib. Мы поговорили о следующих составных частях любого графика:
FigureAxesArtists (Axis, Line, Title, Legend)
Любой график — это фигура, на которой может быть располагаться несколько визуальных окружений с расположенными на нем визуальными объектами. Среди них:
- Оси координат
- Графики различных типов
- Названия графиков
- Линии и маркеры
Запомнить все подробности поможет эта схема:

Здесь основные элементы выделены кругами с подписями и примером кода, который инициализирует или настраивает каждый элемент. Можно использовать ее как шпаргалку, а за дополнительными примерами обращаться к документации Matplotlib.
Когда вы разберетесь в том, как устроены фигуры библиотеки Matplotlib, вы сможете строить сложные графики с помощью Pyplot, ее внутреннего модуля. Также можно использовать методы других высокоуровневых библиотек, построенных на базе Matplotlib.
Рекомендуемые программы
Завершено
0 / 8

