Введение в Matplotlib. Подмодуль pyplot. Вывод массивов на графике

Создано: 17.11.2025

Большинство возможностей библиотеки Matplotlib реализуется в ее подмодуле pyplot. Так в нем есть функция plot, с помощью которой можно вывести график, образованный из двух массивов. Один будет играть роль координат x точек, другой — y.

import numpy as np
import matplotlib.pyplot as plt

y_temp = np.array([8, 6, 6, 3, -2, 0, -1, 3, 0, 5])
x_days = np.arange(1, len(y_temp)+1)

plt.plot(x_days, y_temp)

plt.show()
Передача в plot() двух массивов

Детали визуального представления графика настаиваются. Для того чтобы изменить цвет линии, вывести точки, легенду, подписать оси, весь график и другое используется передача параметров в функцию plot() или вызов специальных функций. Так мы можем сделать пример выше понятнее и красивее:

plt.plot(x_days, y_temp, marker='o', color='g', linestyle='dashed')
plt.xlabel('Дни')
plt.ylabel('Температура', color='g')
plt.title('Температура воздуха за последние 10 дней', color='#705574')
Оформление графика

Вместо параметров marker, color и linestyle можно использовать сокращенный формат записи. Так для примера выше такой же представление графика можно получить таким вызовом plot():

plt.plot(x_days, y_temp, 'o--g')

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

В plot() можно передать один массив, например, plt.plot(y_temp). Тогда координаты для оси x берутся последовательно от нуля до количества значений в переданном массиве. Если бы мы сделали так, то получили бы такой же график за исключением того, что первый день был бы нулевым на графике, а десятый — имел координату 9 по оси x.

Когда строят графики функций, значения для координат y вычисляются по формуле. То есть исходно имеется один массив, а данные для второго получают "на лету", так как они находятся в зависимости от первого. Мы рассмотрим это в следующем уроке, где речь пойдет об арифметических операциях с массивами.

Функция plot выводит обычные графики (в "стиле" линейной алгебры в случае 2D), но массивы могут требовать иной формы представления. Так статистические данные (сколько чего в сравнении с другими) выводят в виде диаграмм. Для этого в подмодуле pyplot библиотеки Matplotlib предусмотрены иные функции. Также есть возможность визуализировать информацию в трехмерном виде.

x_days = np.array(('Mon', 'Tue', 'Wed', 'Thu', 'Fri'))
y_money = np.array([2000, 2390, 1500, 1900, 1600])
plt.bar(x_days, y_money)
Столбчатая диаграмма в Matplotlib
plt.pie(y_money, labels=x_days)
Пример круговой диаграммы в Matplotlib

Matplotlib позволяет выводить несколько объектов-осей ("плотов") на одной фигуре (в одном окне). Разделение выполняется с помощью функции subplot.

Разделение окна на несколько плотов с помощью функции subplot()
plt.subplot(2, 1, 1)
y_temp = np.array([8, 6, 6, 3, -2, 0, -1, 3, 0, 5])
x_days = np.arange(1, len(y_temp)+1)
plt.plot(x_days, y_temp)

plt.subplot(2, 1, 2)
y_wet = np.array([50, 55, 50, 40, 30, 32, 30, 35, 35, 40])
plt.plot(x_days, y_wet)

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

С другой стороны, можно вывести несколько графиков на одном плоте. При этом для каждого выполняется свой вызов функции plot(). Подобное бывает удобно, если единицы измерения (размерности) примерно совпадают по обоим осям, и требуется наглядное сравнение двух графиков.

В конце обратим внимание, что в функцию plot() и подобные можно передавать не только объекты ndarray библиотеки NumPy, но и обычные последовательности языка Python (списки, кортежи, объекты range).