Метод add_subplot () имеет несколько сигнатур вызовов:
add_subplot(nrows, ncols, index, **kwargs)
add_subplot(pos, **kwargs)
add_subplot(ax)
add_subplot()
<- с 3.1.0
Звонки 1 и 2:
Вызовы 1 и 2 достигают того же, что и один другой (до предела, объясненного ниже). Подумайте о них, как о первых, указав расположение сетки с их первыми 2 числами (2x2, 1x8, 3x4 и т. Д.), Например:
f.add_subplot(3,4,1)
# is equivalent to:
f.add_subplot(341)
Оба производят расположение подзаговоров (3 x 4 = 12) в 3 рядах и 4 столбцах. Третье число в каждом вызове указывает , какой оси объекта возврата, начиная с 1 в верхнем левом углу , увеличивая вправо .
Этот код иллюстрирует ограничения использования вызова 2:
#!/usr/bin/env python3
import matplotlib.pyplot as plt
def plot_and_text(axis, text):
'''Simple function to add a straight line
and text to an axis object'''
axis.plot([0,1],[0,1])
axis.text(0.02, 0.9, text)
f = plt.figure()
f2 = plt.figure()
_max = 12
for i in range(_max):
axis = f.add_subplot(3,4,i+1, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + '3,4,' +str(i+1))
# If this check isn't in place, a
# ValueError: num must be 1 <= num <= 15, not 0 is raised
if i < 9:
axis = f2.add_subplot(341+i, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + str(341+i))
f.tight_layout()
f2.tight_layout()
plt.show()
Вы можете видеть с помощью вызова 1 на LHS, что вы можете вернуть любой объект оси, однако с вызовом 2 на RHS вы можете вернуть только до индекса = 9, отображая подпункты j), k) и l), недоступные с помощью этого вызова.
Т.е. это иллюстрирует этот пункт из документации:
pos - это трехзначное целое число, где первая цифра - это число строк, вторая - количество столбцов, а третья - индекс подзаговора. то есть fig.add_subplot (235) аналогичен fig.add_subplot (2, 3, 5). Обратите внимание, что для работы этой формы все целые числа должны быть меньше 10 .
Звоните 3
В редких случаях add_subplot может вызываться с одним аргументом - экземпляром осей подплота, уже созданным на данном рисунке, но не в списке осей рисунка.
Звоните 4 (с 3.1.0):
Если позиционные аргументы не передаются, по умолчанию используется значение (1, 1, 1).
т.е. воспроизводить звонок fig.add_subplot(111)
в вопросе.