Ответ 1
Все они делают разные вещи, поскольку matplotlib использует иерархический порядок, в котором окно фигуры содержит фигуру, которая может состоять из многих осей. Кроме того, есть функции из интерфейса pyplot, и есть методы в классе Figure
. Я обсужу оба случая ниже.
интерфейс pyplot
pyplot
- это модуль, который собирает несколько функций, которые позволяют использовать matplotlib функционально. Я предполагаю, что pyplot
был импортирован как import matplotlib.pyplot as plt
.
В этом случае есть три команды, которые удаляют вещи:
plt.cla()
очищает ось, то есть текущую активную ось на текущем рисунке. Это оставляет другие оси нетронутыми.
plt.clf()
очищает весь текущий рисунок всеми его осями, но оставляет открытое окно таким, что его можно повторно использовать для других графиков.
plt.close()
закрывает окно, которое будет текущим окном, если не указано иное.
Какие функции вам подходят лучше всего, зависит от вашего прецедента.
Кроме того, функция close()
позволяет указать, какое окно должно быть закрыто. Аргумент может быть либо числом, либо именем, заданным в окне, когда он был создан с помощью figure(number_or_name)
, или может быть полученным экземпляром фигуры fig
, т.е. С использованием fig = figure()
. Если аргумент close()
не указан, текущее активное окно будет закрыто. Кроме того, существует синтаксис close('all')
, который закрывает все фигуры.
методы класса Figure
Кроме того, класс Figure
предоставляет методы для очистки фигур.
Я предполагаю, что fig
является экземпляром Figure
:
fig.clf()
очищает весь рисунок. Этот вызов эквивалентен plt.clf()
, только если fig
- текущий показатель.
fig.clear()
является синонимом fig.clf()
Обратите внимание, что даже del fig
не будет закрывать окно связанных фигур. Насколько я знаю, единственный способ закрыть окно фигуры - использовать plt.close(fig)
, как описано выше.