matplotlib의 플롯을 클리어하기 위해 cla(), clf() 또는 close()를 사용하는 경우
Matplotlib은 다음 기능을 제공합니다.
cla() # Clear axis
clf() # Clear figure
close() # Close a figure window
각 기능은 언제 사용해야 하며 정확히 어떤 기능을 합니까?
matplotlib은 그림 창에 여러 축으로 구성될 수 있는 그림이 포함된 계층적 순서를 사용하기 때문에 이러한 두 가지 작업은 모두 다릅니다.또한, Pyplot 인터페이스로부터의 함수와 방법들이 있습니다.Figure
두 가지 사례에 대해 아래에서 논의하겠습니다.
파이플롯 계면
pyplot
는 matplotlib를 기능적으로 사용할 수 있는 몇 가지 기능을 수집하는 모듈입니다.여기서 추측하건대pyplot
로 Import 되었습니다.import matplotlib.pyplot as plt
이 경우 다음 3가지 명령어가 있습니다.
'기능'을 참조해 주세요.
plt.cla()
축, 즉 현재 그림의 현재 활성 축을 지웁니다.다른 도끼는 손대지 않고 놔둬요.plt.clf()
모든 축이 있는 현재 그림 전체를 지우지만 다른 플롯에 재사용할 수 있도록 창을 열어 둡니다.plt.close()
특별히 지정하지 않는 한 현재 창이 닫힙니다.
따라서 어떤 기능이 가장 적합한지는 사용 사례에 따라 달라집니다.
그close()
또한 어떤 창을 닫아야 하는지 지정할 수 있습니다.인수는 창 작성 시 지정한 숫자 또는 이름 중 하나입니다.figure(number_or_name)
또는 그림 인스턴스일 수도 있습니다.fig
취득한, 즉, 사용fig = figure()
에 대해 아무런 논거가 없는 경우close()
현재 활성 창이 닫힙니다.또한, 다음과 같은 구문이 있습니다.close('all')
이것으로 모든 수치가 마감됩니다.
그림 클래스의 메서드
게다가Figure
class는 수치를 클리어하는 방법을 제공합니다.다음과 같이 가정하겠습니다.fig
의 인스턴스입니다.Figure
:
fig.clf()
그림 전체를 클리어합니다.이 콜은 다음과 같습니다.plt.clf()
이 경우에만fig
현재 수치입니다.
fig.clear()
와 동의어이다.fig.clf()
주의해 주세요.del fig
는 관련 그림 창을 닫지 않습니다.그림 창을 닫으려면plt.close(fig)
상기와 같이
오늘 제가 발견한 주의사항이 하나 있습니다.플롯을 자주 호출하는 함수가 있는 경우plt.close(fig)
대신fig.clf()
첫 번째는 기억 속에 축적되지 않는다.즉, 메모리가 문제가 되는 경우는, plt.close(그림)를 사용해 주세요(더 좋은 방법이 있는 것 같습니다만, 관련하는 링크에 대해서는, 이 코멘트의 마지막에 액세스 해 주세요).
따라서 다음 스크립트는 빈 목록을 생성합니다.
for i in range(5):
fig = plot_figure()
plt.close(fig)
# This returns a list with all figure numbers available
print(plt.get_fignums())
반면, 이것은 5개의 숫자가 적힌 목록을 만들 것입니다.
for i in range(5):
fig = plot_figure()
fig.clf()
# This returns a list with all figure numbers available
print(plt.get_fignums())
위 문서에서는 그림을 닫는 것과 창을 닫는 것의 차이를 알 수 없습니다.그게 분명해질지도 몰라.
완전한 스크립트를 시험해 보는 경우는, 다음의 조작이 있습니다.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1000)
y = np.sin(x)
for i in range(5):
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(x, y)
plt.close(fig)
print(plt.get_fignums())
for i in range(5):
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(x, y)
fig.clf()
print(plt.get_fignums())
메모리가 문제인 경우 누군가가 이미 SO에 회피책을 게시한 경우: 참조 카운트를 할 수 있는 수치를 작성하십시오.
plt.cla()는 클리어 전류 축을 의미합니다.
plt.clf()는 클리어 전류 수치를 의미합니다.
또한 plt.gca() (현재 축을 취득함)와 plt.gcf() (현재 수치를 취득함)가 있습니다.
자세한 내용은 여기를 참조하십시오: Matplotlib, Pyplot, Pylab 등: 이것들과 사용 시점의 차이는 무엇입니까?
언급URL : https://stackoverflow.com/questions/8213522/when-to-use-cla-clf-or-close-for-clearing-a-plot-in-matplotlib
'source' 카테고리의 다른 글
HTTP 프로토콜의 PUT 및 DELETE 및 PHP에서의 사용 (0) | 2022.10.26 |
---|---|
조건부로 부모 요소 렌더링, 내부 html 유지 (0) | 2022.10.26 |
python을 사용하여 빈 파일 만들기 (0) | 2022.10.26 |
Nuxt 및 Vuex를 사용하여 getter와 액션을 찾을 수 없는 이유는 무엇입니까? (0) | 2022.10.26 |
Java에서 null-return 메서드를 Scala 옵션과 함께 래핑하시겠습니까? (0) | 2022.10.26 |