1. Введение в Matplotlib: построение первого линейного графика
Введение в Matplotlib: построение первого линейного графика
Визуализация данных — это процесс перевода сухих чисел в понятные графические образы. В экосистеме Python существует множество инструментов для этой задачи, но фундаментом для большинства из них служит библиотека Matplotlib. Это мощный, гибкий и проверенный временем инструмент, который позволяет создавать графики любой сложности: от простых линий до анимированных 3D-моделей.
Matplotlib предоставляет полный контроль над каждым элементом графика: осями, линиями, цветами, шрифтами и легендами. Понимание принципов работы этой библиотеки открывает двери к более высокоуровневым инструментам, таким как Seaborn или Pandas Plotting, которые построены поверх неё.
Установка и импорт
Для начала работы необходимо установить библиотеку. Если вы используете стандартный менеджер пакетов Python, выполните команду в терминале:
В скриптах и блокнотах Jupyter принято импортировать модуль pyplot из библиотеки Matplotlib под сокращенным псевдонимом plt. Это общепринятый стандарт, который вы встретите в 99% документации и примеров.
Модуль pyplot предоставляет процедурный интерфейс, напоминающий работу в MATLAB. Он содержит функции для создания фигур, создания областей рисования, нанесения линий и добавления меток.
Архитектура графика: Figure и Axes
Прежде чем строить графики, важно разобраться в иерархии объектов Matplotlib. Новички часто путают понятия «рисунок» и «оси», что приводит к ошибкам при настройке внешнего вида.
В Matplotlib существует два главных объекта:
!Структура объектов Matplotlib: Figure содержит Axes, который содержит элементы графика
Когда мы используем простые команды plt.plot(), Matplotlib автоматически создает и Фигуру, и Оси, скрывая от нас детали реализации. Однако помнить об этой структуре полезно для более сложной настройки.
Построение простого линейного графика
Линейный график (Line Plot) — это базовый тип визуализации, который используется для отображения зависимости одной величины от другой. Чаще всего он применяется для показа изменений во времени.
Для построения графика нам понадобятся данные. В простейшем случае это два списка чисел: координаты по оси X и координаты по оси Y.
Рассмотрим пример, где мы отобразим рост температуры воздуха в течение недели.
Функция plt.plot() принимает два аргумента: список значений для горизонтальной оси и список значений для вертикальной оси. Она соединяет точки прямыми линиями в том порядке, в котором они переданы.
Функция plt.show() запускает цикл отрисовки и открывает окно с графиком. В среде Jupyter Notebook эта команда также фиксирует вывод изображения под ячейкой с кодом.
!Результат выполнения функции plt.plot() с данными о температуре
Особенность передачи одного списка
Если вы передадите в plt.plot() только один список, Matplotlib автоматически сгенерирует значения для оси X. Это будут индексы элементов списка, начиная с 0.
Оформление графика
График без подписей бесполезен. Зритель должен понимать, что изображено на осях и в каких единицах измерения представлены данные. Добавим заголовок, подписи осей и сетку для лучшей читаемости.
* plt.title(): устанавливает общий заголовок графика.
* plt.xlabel() и plt.ylabel(): подписывают соответствующие оси.
* plt.grid(): рисует вспомогательную сетку, которая помогает визуально соотносить точки линии с делениями на осях.
Визуализация математических функций
Matplotlib отлично справляется с визуализацией математических зависимостей. Построим график квадратичной функции:
где — значение функции (зависимая переменная), а — аргумент функции (независимая переменная).
Для создания плавных линий математических функций удобно использовать библиотеку NumPy для генерации массива точек, но можно обойтись и генераторами списков Python.
В данном случае график будет представлять собой параболу. Чем больше точек мы возьмем в диапазоне x_values, тем более гладкой будет выглядеть кривая.
Несколько линий на одном графике
Часто возникает необходимость сравнить два набора данных. Для этого достаточно вызвать функцию plt.plot() несколько раз перед вызовом plt.show(). Matplotlib автоматически назначит каждой линии свой цвет.
Чтобы различать линии, необходимо добавить легенду. Для этого в функцию plot передается параметр label, а в конце вызывается plt.legend().
!Сравнение двух наборов данных на одной координатной плоскости
Настройка стиля линий
Вы можете вручную управлять цветом, стилем линии и маркерами точек, используя дополнительные аргументы в plt.plot().
* color (или c): цвет линии (например, 'red', 'green', '#00FF00').
* linestyle (или ls): стиль линии ('-' сплошная, '--' штриховая, ':' точечная).
marker: стиль маркера точек ('o' круги, 's' квадраты, '' звезды).
* linewidth (или lw): толщина линии.
Пример кастомизации:
Этот код нарисует зеленую штриховую линию толщиной 2 пикселя с круглыми маркерами в каждой точке данных.
Сохранение графика
После того как график построен и настроен, его часто нужно сохранить в файл для вставки в отчет или презентацию. Для этого используется метод plt.savefig().
Важно: вызывать savefig нужно до вызова plt.show(), иначе вы сохраните пустой белый квадрат (так как show() очищает фигуру после закрытия окна).
Параметр dpi=300 (dots per inch) задает разрешение изображения. Значение 300 подходит для качественной печати.
Итоги
В этой статье мы познакомились с основами библиотеки Matplotlib и научились строить базовые линейные графики. Ключевые моменты:
* Основной интерфейс для работы — модуль matplotlib.pyplot, который импортируется как plt.
* График состоит из контейнера Figure и области построения Axes.
* Функция plt.plot(x, y) строит линейный график по координатам.
* Для добавления информативности используются plt.title(), plt.xlabel(), plt.ylabel() и plt.legend().
* Несколько вызовов plt.plot() позволяют отобразить несколько зависимостей на одной координатной плоскости.