コードループ内に一連のイメージを印刷しようとしています。最終的には、システムがどのように時間とともに変化するかを示すために約1000を印刷する必要があります。私はMatplotlib runs out of memory when plotting in a loopで概説されている方法を見直しましたが、コードで96以上の画像を生成することはできません。ループ内の図をプロットするときのPythonメモリ
私はその取り除か形で使用していたコードは
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)
以上がメモリを解放していない理由は上の任意のアドバイスの下に示すように、これは単純なループで使用されている
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 as plt'を実行し、' plt = mpl.pyplot'面白いビジネスを取り除いてください。 – Ajean
多くのありがとうございます。私はそれを取り除き、キャンバスの描画にパスの提案を使用しました。今働いている。多くのお礼ありがとうございます。 – ultimatejo