Введение в 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() или вызов специальных функций. Так мы можем сделать пример выше понятнее и красивее:
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)
plt.pie(y_money, labels=x_days)
Matplotlib позволяет выводить несколько объектов-осей ("плотов") на одной фигуре (в одном окне). Разделение выполняется с помощью функции 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).