Я думаю, вы бы выиграли от использования метода cla()
axes, который очищает оси .Вы можете сделать это в верхней части вашего скрипта, прежде чем что-либо будет сделано;еще до первого сюжета.Я бы использовал это вместо close()
, потому что тогда второй раз вокруг фигуры не будет.Поэтому я бы заменил строку figure(1)
на
figure(1)
figure(1).gca().cla()
. Это установит цифру на рисунок 1, затем получит текущие оси (gca()
) и затем очистит ее с помощью cla()
.Вот сценарий, который я независимо выполнял для django, который работал для меня и подражал тому, что, я думаю, вы пытаетесь сделать:
from pylab import *
#prepare values and labels
values = [34,17,29,6,14]
labels = ["john","jane","jim","jason","judy"]
# create figure
figure(1)
figure(1).gca().cla()
# set some parameters
params = { 'axes.labelsize': 6, 'text.fontsize': 6, 'font.size': 6,
'legend.fontsize': 6, 'xtick.labelsize': 6,
'ytick.labelsize': 6,}
rcParams.update(params)
# draw, add legend and save
pie(values, labels=labels, shadow=False)
l = legend(loc='lower center', ncol= 5, bbox_to_anchor=(0.5, -0.25))
l.get_frame().set_alpha(0.0)
savefig('3.png', dpi=100, transparent=True)
#close(1)
values2 = [24,27,29,16,4]
labels2 = ["dave","donna","derrick","dotty","drew"]
figure(1)
figure(1).gca().cla()
# draw, add legend and save
pie(values2, labels=labels2, shadow=False)
l = legend(loc='lower center', ncol= 5, bbox_to_anchor=(0.5, -0.25))
l.get_frame().set_alpha(0.0)
savefig('4.png', dpi=100, transparent=True)
#show()
Вы, вероятно, можете обойтись только одной строкой;только то, что это сработало для меня:
figure(1).gca().cla()
Но это немного яснее, возможно, с другой стороны.