코드 루프에서 일련의 이미지를 인쇄하려고합니다. 내 시스템이 시간에 따라 어떻게 변하는지를 보여주기 위해 궁극적으로 약 1000 인쇄 할 필요가 있습니다. Matplotlib runs out of memory when plotting in a loop에 설명 된 방법을 검토했지만 여전히 96 개 이상의 이미지를 생성하는 코드를 만들 수는 없습니다.루프에서 숫자를 그릴 때의 파이썬 메모리
for loop1 in range(0,10):
for loop2 in range(0,100):
saveName = 'Test_Images/' + str(loop1) + '_' + str(loop2) + '.png'
plotHeatMap(saveName,'Test','X','Y',-35,35,141,-30,30,121,Z)
이하 그래서 상기 개방되지 않는 메모리에 대한 조언을 같이
는 I가 밖으로 제거 형태로 사용하고있는 코드는 간단한 루프에서 사용된다
import numpy as np
import matplotlib as mpl
import os
def pltHM(graphname,graphtext,xAxis,yAxis,xMn,xMx,xCnt,yMn,yMx,yCnt,TCrt):
plt = mpl.pyplot
fig = plt.figure(figsize=(8,7), dpi=250)
cmap = mpl.cm.jet
norm = mpl.colors.Normalize(vmin=-3, vmax=3)
X = np.linspace(xMn,xMx,xCnt)
Y = np.linspace(yMn,yMx,yCnt)
plt.xlabel(xAxis)
plt.ylabel(yAxis)
plt.pcolormesh(X,Y,TCrt, cmap=cmap,norm=norm)
plt.grid(color='w')
plt.suptitle(graphtext, fontsize=14)
plt.colorbar()
plt.savefig(graphname, transparent = True)
plt.cla()
plt.clf()
plt.close(fig)
del plt
del fig
return
이것을 이하 추적 메시지가 발생했습니다.
RuntimeError : 이미지 메모리를 할당 할 수 없습니다.
도움을 주신 것에 대해 많은 성원을 부탁드립니다.
팁 : 루프에서 새로운 인물을 만들 필요는 없습니다. 숫자를 * 한 번 * 만들고, 루프 안쪽에 * 플롯을 업데이트하고 저장하십시오. 또한 매번 pyplot을 다시 정의하고 있습니다. ** 그렇게하지 마십시오. ** 한 번만하면됩니다. 맨 위에 'import matplotlib.pyplot plt'를 실행하고'plt = mpl.pyplot' 재미있는 사업을 제거하십시오. – Ajean
많은 감사. 나는 이제 그것을 제거하고 캔버스 드로잉에 대한 pathoren의 제안을 사용했습니다. 지금 일하고있어. 많은 감사합니다 – ultimatejo