В этой главе мы научимся создавать несколько сюжетов на одном холсте.
Функция subplot () возвращает объект оси в заданной позиции сетки. Сигнатура Call этой функции —
plt.subplot(subplot(nrows, ncols, index)
На текущем рисунке функция создает и возвращает объект Axes с указателем позиции сетки nrows по ncolsaxes. Индексы изменяются от 1 до nrows * ncols с приращением в главном порядке строк. Если значение параметраrow, ncols и index меньше 10, индексы также могут быть заданы как одно объединенное, threedigitnumber.
Например, как вспомогательный участок (2, 3, 3), так и вспомогательный участок (233) создают оси в верхнем правом углу текущей фигуры, занимая половину высоты фигуры и треть ширины фигуры.
Создание подзаголовка приведет к удалению любого ранее существующего подплота, который перекрывается с ним за пределами общей границы.
import matplotlib.pyplot as plt # plot a line, implicitly creating a subplot(111) plt.plot([1,2,3]) # now create a subplot which represents the top plot of a grid with 2 rows and 1 column. #Since this subplot will overlap the first, the plot (and its axes) previously created, will be removed plt.subplot(211) plt.plot(range(12)) plt.subplot(212, facecolor='y') # creates 2nd subplot with yellow background plt.plot(range(12))
Выше строка кода генерирует следующий вывод —
Функция add_subplot () класса figure не будет перезаписывать существующий график —
import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.add_subplot(111) ax1.plot([1,2,3]) ax2 = fig.add_subplot(221, facecolor='y') ax2.plot([1,2,3])
Когда приведенная выше строка кода выполняется, она генерирует следующий вывод —
Вы можете добавить график вставки на том же рисунке, добавив другой объект осей на том же рисунке.
import matplotlib.pyplot as plt import numpy as np import math x = np.arange(0, math.pi*2, 0.05) fig=plt.figure() axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes y = np.sin(x) axes1.plot(x, y, 'b') axes2.plot(x,np.cos(x),'r') axes1.set_title('sine') axes2.set_title("cosine") plt.show()
После выполнения вышеупомянутой строки кода генерируется следующий вывод: