Figure.add_subplot() vs pyplot.subplot()
В чем разница между add_subplot()
и subplot()
? Они оба, похоже, добавляют подзаговор, если их там нет. Я посмотрел документацию, но я не мог разобрать разницу. Это просто для того, чтобы сделать будущий код более гибким?
Например:
fig = plt.figure()
ax = fig.add_subplot(111)
против
plt.figure(1)
plt.subplot(111)
из учебников matplotlib.
Ответы
Ответ 1
Если вам нужна ссылка на ax
для последующего использования:
ax = fig.add_subplot(111)
дает вам одно:
plt.subplot(111)
вам нужно сделать что-то вроде:
ax = plt.gca()
Аналогичным образом, если вы хотите манипулировать фигурой позже:
fig = plt.figure()
дает вам ссылку сразу, а не:
fig = plt.gcf()
Получение явных ссылок еще более полезно, если вы работаете с несколькими подзадачами цифр. Для сравнения:
figures = [plt.figure() for _ in range(5)]
с:
figures = []
for _ in range(5):
plt.figure()
figures.append(plt.gcf())
Ответ 2
pyplot.subplot
- это оболочка Figure.add_subplot
с разным поведением.
Создание субплота с помощью pyplot.subplot
удалит любой ранее существующий субплот, который перекрывается с ним за пределами общей границы.
Если вы не хотите использовать это поведение, используйте метод Figure.add_subplot
или функцию pyplot.axes
. Подробнее