Matplotlib Pyplot

Pyplot — это подбиблиотека Matplotlib, предоставляющая API для построения графиков, аналогичный MATLAB.

Pyplot — это часто используемый модуль построения графиков, который позволяет пользователям легко создавать 2D-графики.

Pyplot содержит ряд связанных функций построения графиков. Каждая функция вносит некоторые изменения в текущее изображение, например: добавляет маркеры на изображение, создает новое изображение, создает новую область построения на изображении и т. д.

При использовании можно с помощью import импортировать библиотеку pyplot и задать псевдонимplt:

import matplotlib.pyplot as plt

Таким образом, мы можем использоватьpltдля обращения к методам пакета Pyplot.

Ниже приведены некоторые часто используемые функции pyplot:

  • plot(): используется для построения линейных графиков и диаграмм рассеяния
  • scatter(): используется для построения диаграмм рассеяния
  • bar(): используется для построения вертикальных и горизонтальных столбчатых диаграмм
  • hist(): используется для построения гистограмм
  • pie(): используется для построения круговых диаграмм
  • imshow(): используется для рисования изображений
  • subplots(): используется для создания подграфиков

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

В следующем примере мы используем две координаты(0,0)для(6,100)рисования линии:

Пример

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([0, 6])
ypoints = np.array([0, 100])

plt.plot(xpoints, ypoints)
plt.show()

Результат вывода следующий:

В приведенном выше примере мы использовали функциюplot()из Pyplot,plot()Эта функция является самой базовой функцией для рисования 2D-графиков.

plot()Используется для рисования. Она может рисовать точки и линии. Формат синтаксиса следующий:

# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

Описание параметра:

  • x, y:Узлы точек или линий, x — это данные оси x, y — данные оси y. Данные могут быть списком или массивом.
  • fmt:Необязательный параметр, определяет базовый формат (например, цвет, маркер и стиль линии).
  • **kwargs:Необязательный, используется на 2D-графиках для установки заданных свойств, таких как подписи, толщина линии и т. д.
>>> plot(x, y)        # Создать 2D-линейный график данных в y относительно соответствующих значений в x, используя стиль по умолчанию
>>> plot(x, y, 'bo')  # Создать двумерный линейный график данных y в зависимости от соответствующих значений x, нарисованный синими сплошными кругами
>>> plot(y)           # значения x от 0 до N-1
>>> plot(y, 'r+')     # Использовать красные знаки +

Символы цвета:'b' синий, 'm' пурпурный, 'g' зелёный, 'y' жёлтый, 'r' красный, 'k' чёрный, 'w' белый, 'c' голубой, '#0053A6' строка RGB-цвета. Когда для нескольких кривых не указан цвет, они автоматически выбирают разные цвета.

Параметры стиля линии:'-' сплошная линия, '--' штриховая линия, '-.' штрихпунктирная линия, ':' пунктирная линия.

Символы маркеров:'.' маркер точки, ',' маркер пикселя (очень маленькая точка), 'o' маркер сплошного круга, 'v' маркер перевёрнутого треугольника, '^' маркер треугольника вершиной вверх, '>' маркер правого треугольника, '<' маркер левого треугольника… и так далее.

Если мы хотим нарисовать линию из координат (1, 3) в (8, 10), нам нужно передать два массива [1, 8] и [3, 10] в функциюplot:

Пример

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([1, 8])
ypoints = np.array([3, 10])

plt.plot(xpoints, ypoints)
plt.show()

Результат выполнения приведённого выше кода:

Если мы хотим построить только две координатные точки, а не линию, мы можем использовать параметрo, который обозначает маркер сплошного круга:

Построить две точки с координатами (1, 3) и (8, 10)

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([1, 8])
ypoints = np.array([3, 10])

plt.plot(xpoints, ypoints, 'o')
plt.show()

Результат выполнения приведённого выше кода:

Мы также можем построить любое количество точек, главное — чтобы количество точек на обеих осях было одинаковым.

Нарисовать ломаную линию с координатами (1, 3), (2, 8), (6, 1), (8, 10). Соответствующие два массива: [1, 2, 6, 8] и [3, 8, 1, 10].

Пример

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([1, 2, 6, 8])
ypoints = np.array([3, 8, 1, 10])

plt.plot(xpoints, ypoints)
plt.show()

Результат выполнения приведённого выше кода:

Если мы не указываем точки на оси x, то x будет задан на основе значений y в 0, 1, 2, 3..N-1。

Пример

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 10])

plt.plot(ypoints)
plt.show()

Результат выполнения приведённого выше кода:

Из рисунка выше видно, что значение x по умолчанию устанавливается в [0, 1]。

Рассмотрим другой пример с большим количеством значений:

Пример

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10, 5, 7])

plt.plot(ypoints)
plt.show()

Результат выполнения приведённого выше кода:

Из рисунка выше видно, чтоxзначение по умолчанию устанавливается в[0, 1, 2, 3, 4, 5]。

В следующем примере мы строим графики синуса и косинуса. В параметрах plt.plot() мы передаём две парыx,yзначений. Первая пара — x,y, которая соответствует функции синуса. Вторая пара —x,z, которая соответствует функции косинуса.

Пример

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,4*np.pi,0.1)   # start,stop,step
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y,x,z)
plt.show()

Результат выполнения приведённого выше кода:

Для получения дополнительной информации см.:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html

Другие расширения