매트플롯립에게 플롯이 끝났다는 것을 어떻게 알립니까?
다음 코드는 두 개의 PostScript(.ps) 파일로 플롯되지만 두 번째 코드는 두 줄을 모두 포함합니다.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(111)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.subplot(111)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
매트플롯립에게 두 번째 플롯을 새로 시작하도록 지시하려면 어떻게 해야 합니까?
명확한 그림 명령이 있으며, 이를 통해 다음과 같은 작업을 수행할 수 있습니다.
plt.clf()
동일한 그림에 여러 개의 하위 그림이 있는 경우
plt.cla()
현재 축을 지웁니다.
사용할 수 있습니다.figure
새 그림을 만드는 방법(예: 사용)close
첫 번째 줄거리 이후에
@David Cournafeau에서 언급한 바와 같이,figure()
.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.figure()
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.figure()
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
또는subplot(121)
/subplot(122)
동일한 그림, 다른 위치에 대해 계산합니다.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(121)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.subplot(122)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
입력만 하면 됩니다.plt.hold(False)
첫 번째 plt.plot 이전에, 그리고 당신은 당신의 원래 코드를 고수할 수 있습니다.
예를 들어 웹 애플리케이션에서 Matplotlib을 대화형으로 사용하는 경우 (예: ipython)을 찾을 수 있습니다.
plt.show()
대신에plt.close()
또는plt.clf()
.
matplotlib의 소스 코드에서.파이플롯, 아래figure()
설명서:
If you are creating many figures, make sure you explicitly call `.pyplot.close` on the figures you are not using, because this will enable pyplot to properly clean up the memory.
그래서 다른 사람들이 말했듯이,plt.close()
당신이 그것을 다 끝내면, 당신은 갈 수 있을 것입니다!
참고: 다음을 통해 그림을 작성하는 경우f = plt.figure()
를 통해 닫을 수 있습니다.plt.close( f )
대신에f.close()
.
아무도 작동하지 않는 경우 이 항목을 확인합니다.각 축을 따라 x 및 y 배열의 데이터가 있는 경우를 말합니다.그런 다음 x와 y를 비우도록 초기화한 셀(점피터)을 확인합니다.데이터를 다시 초기화하지 않고 x 및 y에 추가할 수 있기 때문입니다.그림에도 오래된 데이터가 있습니다.그러니까 확인해 보세요..
해보셨습니까plt.close()
제게 효과가 있었고 실수로 같은 줄거리를 여러 번 저장하지 않았다는 것을 확인했습니다.
코드:
def save_to(root: Path, plot_name: str = 'plot', close: bool = True):
"""
Assuming there is a plot in display, saves it to local users desktop users desktop as a png, svg & pdf.
note:
- ref on closing figs after saving: https://stackoverflow.com/questions/741877/how-do-i-tell-matplotlib-that-i-am-done-with-a-plot
- clf vs cla https://stackoverflow.com/questions/16661790/difference-between-plt-close-and-plt-clf
"""
root: Path = root.expanduser()
plt.savefig(root / f'{plot_name}.png')
plt.savefig(root / f'{plot_name}.svg')
plt.savefig(root / f'{plot_name}.pdf')
if close:
# plt.clf()
# plt.cla()
plt.close()
나의 궁극적인 utils lib: https://github.com/brando90/ultimate-utils .
언급URL : https://stackoverflow.com/questions/741877/how-do-i-tell-matplotlib-that-i-am-done-with-a-plot
'programing' 카테고리의 다른 글
Angular에서 백분율로 스타일을 적용하는 방법은 무엇입니까? (0) | 2023.06.07 |
---|---|
ADB Android 장치 승인되지 않음 (0) | 2023.06.07 |
JavaScript에서 페이지가 유효한지 확인 - ASP.NET (0) | 2023.06.07 |
아름다운 수프와 스크레이피 크롤러의 차이점은 무엇입니까? (0) | 2023.06.07 |
변경 내용을 Git 하위 모듈로 되돌리려면 어떻게 해야 합니까? (0) | 2023.06.07 |