Я строю гистограммы и сохраняю график как .png, используя plt.savefig ()
Вот код: -
import matplotlib
matplotlib.use('agg')
import matpltlib.pyplot as plt
Plot_Value = [[13,6],[4,3],[6,8]]
x_axis = ["r1","r2"]
loop_value = ["L 1","L 2","L 3"]
for i in range(len(loop_value)):
fig = plt.figure()
plt.xticks(range(1, len(x_axis) + 1), x_axis,rotation=30)
plt.yticks(range(max(Plot_Value[i]) + 4))
BAR = plt.bar([x + 1 for x in range(len(x_axis))],Plot_Value[i])
fig.suptitle('SAVEFIG EXAMPLE', fontsize=20)
plt.xlabel('X-AXIS', fontsize=15)
plt.ylabel('Y-AXIS', fontsize=15)
for rect in BAR:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width()/2.0, height, '%d' % int(height), ha='center', va='bottom')
plt.savefig(str(loop_value[i].split(' ')[0])+str(loop_value[i].split(' ')[1])+".png", bbox_inches = "tight")
plt.close()
Этот код выше - небольшой код избольшой файл питона.Пока этот код не активен, у меня есть постоянное использование памяти для моей программы на Python.Но как только этот код становится активным, моя память снимает 35 МБ, и эта память не освобождается после завершения печати, и программа переходит к другим функциям в файле.Этот код должен быть активным много раз, и я не могу позволить себе эти пики памяти каждый раз, когда он выполняется.
Я использовал plt.close(), plt.close('all'), plt.clf(), plt.cla()
использовал del fig
(который, я знаю, не повлияетэта проблема)
Также пробовал gc.collect()
после и внутри цикла ничего не помогло.
Как я могу решить эту проблему, или я что-то упустил.