Очистка графиков в Matplotlib: когда использовать cla(), clf(), close()
Быстрый ответ
plt.cla() # Очистка текущих осей, при этом фигура остаётся без изменений.
plt.clf() # Полная очистка фигуры, но окно при этом не закрывается.
plt.close() # Закрытие окна с фигурой, а также освобождение использованных ресурсов.
В процессе визуализации данных иногда возникает необходимость очистить результаты прошлых графиков. plt.cla()
полезен, когда требуется обновить элементы графика, картину в целом при этом не меняя. Если нужно полностью очистить фигуру, применяйте plt.clf()
. Когда работа с графиком завершена и требуется освободить память, к вашим услугам plt.close()
.
Пример:
# Рисование, стирание, повторное рисование — словно игра в Этч-А-Скетч
plt.plot(...) # Рисуем первый график
plt.cla() # Оси очищаем, холст на своём месте, правда, не отображается
plt.plot(...) # Подготавливаем новый график на старой основе
# Всё сначала, будто это новое творческое начинание
plt.clf() # Полностью очищаем фигуру
plt.plot(...) # Строим новый график
# Финальный аккорд!
plt.close() # Закрываем окно с графиком, а также освобождаем ресурсы памяти
Давайте подробнее рассмотрим эти команды и их использование в различных ситуациях.
Интерактивное построение графиков: cla() и clf()
При работе с графиками в интерактивном режиме или в таких средах, как Jupyter Notebooks, может возникнуть необходимость их частого обновления. plt.cla()
и plt.clf()
будут незаменимыми инструментами в таких случаях, обеспечивая эффективную перерисовку и предотвращая излишнее накапливание данных в памяти.
Управление памятью с применением close()
При создании множества графиков в рамках одного цикла важно следить за использованием памяти. В таких ситуациях не забывайте вызывать plt.close(fig)
после каждого цикла для освобождения памяти и избегания утечек. Эффективнее переиспользовать уже созданные графики, чем каждый раз создавать новые.
Сохранение графика перед удалением
Если требуется сохранить график до его очистки, используйте fig.savefig()
до вызова clf()
или close()
. Так можно "запечатлеть" последний вариант ваших данных, прежде чем их история будет окончена.
Визуализация
cla()
, clf()
и close()
образуют своего рода службу по уборке в мире визуализации данных:
cla() — удаляет рисунки, оставляя холст голым:
До применения: [🌟🌳🏞] После применения:
clf() — подготавливает абсолютно новый холст для вашего творчества:
До применения: [🌟🌳🏞] После применения: [🆕]
close() — делает финальный шаг, удаляя график и забирая его из вашего внимания:
До применения: [🎨 на выставке] После применения: [🚪 закрыто]
Стратегии уборки
Повторное использование фигур
Воспользовавшись командой fig.clf()
или её аналогом fig.clear()
, можно эффективно управлять использованием памяти. Это положительно сказывается на производительности вашей среды.
Быстрая очистка сеанса
При необходимости очищения всех существующих фигур используйте plt.close('all')
. Эта команда актуальна после завершения всех ваших экспериментов с визуализацией.
Выбор подходящей команды для очистки
Выбирая способ очистки графика — cla()
, clf()
или close()
— руководствуйтесь тем, что вы планируете делать с вашим продуктом: перерисовку, создание с нуля или полное завершение работы.
Полезные материалы
- Когда нужно использовать cla(), clf() или close() для очистки графика – Stack Overflow
- matplotlib.pyplot.clf — Документация Matplotlib 3.8.2
- matplotlib.pyplot.cla — Документация Matplotlib 3.8.2
- matplotlib.pyplot.close — Документация Matplotlib 3.8.2
- Эффективное использование Matplotlib – Practical Business Python
- Учебное пособие по Matplotlib: Визуализация упоминаний о Trump, Clinton и Sanders – Dataquest
- Использование интерактивных результатов в Jupyter notebooks для управления очисткой графиков – Руководство IPython