Matplotlib - объектно-ориентированный интерфейс

Хотя легко быстро создавать графики с помощью matplotlib.pyplotмодуль рекомендуется использовать объектно-ориентированный подход, поскольку он дает больше контроля и настройки ваших графиков. Большинство функций также доступны вmatplotlib.axes.Axes класс.

Основная идея использования более формального объектно-ориентированного метода состоит в том, чтобы создать объекты-фигуры, а затем просто вызвать методы или атрибуты из этого объекта. Такой подход помогает лучше работать с холстом, на котором есть несколько сюжетов.

В объектно-ориентированном интерфейсе Pyplot используется только для нескольких функций, таких как создание фигур, и пользователь явно создает и отслеживает объекты фигуры и осей. На этом уровне пользователь использует Pyplot для создания фигур, и с помощью этих фигур можно создать один или несколько объектов осей. Эти объекты осей затем используются для большинства графических действий.

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

fig = plt.figure()

Теперь добавьте оси к фигуре. Вadd_axes()Для метода требуется объект списка из 4 элементов, соответствующих левому краю, низу, ширине и высоте фигуры. Каждое число должно быть от 0 до 1 -

ax=fig.add_axes([0,0,1,1])

Установите метки для осей x и y, а также заголовок -

ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')

Вызовите метод plot () объекта осей.

ax.plot(x,y)

Если вы используете блокнот Jupyter, необходимо ввести встроенную директиву% matplotlib; функция otherwistshow () модуля pyplot отображает график.

Рассмотрите возможность выполнения следующего кода -

from matplotlib import pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()

Вывод

Приведенная выше строка кода генерирует следующий вывод -

Тот же код при запуске в записной книжке Jupyter показывает результат, как показано ниже -