我是Python/Django的新手,我尝试创建一个生成绘图的网站。为了生成绘图,我使用matplotlib。在
当我第一次运行页面时一切正常,但是刷新结果后我得到了错误的绘图(由新的和旧的绘图组成)。在
代码如下:
from pylab import *
...
#prepare values and labels
values = []
labels = []
values.append(float(user.playcount)/sum*100)
labels.append(user.name)
for friend in friends:
friend = friend.getInfo()
values.append(float(friend.playcount)/sum*100)
labels.append(friend.name)
# create figure
figure(1)
# 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('media/images/3.png', dpi=100, transparent=True)
#close(1)
如果我取消对close(1)指令的注释,则刷新页面将出现问题,因为应用程序将卡在figure()指令上。在
谁能告诉我问题在哪里吗?我认为数字处理有问题,但我不知道到底是什么。在
我认为使用
cla()
轴方法会对您有好处,它clears the axes。您可以在脚本的顶部执行此操作,甚至在第一个绘图之前。我将使用这个而不是close()
,因为这样第二次出现的图形就不存在了。所以我将figure(1)
行替换为这将图形设置为图1,然后获取当前轴(
^{pr2}$gca()
),然后用cla()
清除它。下面是一个我独立运行的django脚本,它对我很有用,并且模仿了我认为您正在尝试做的事情:你可能只需要一句话就可以逃过一劫;只要这句话对我有用:
但它更清楚一点也许相反。在
根据Cristian Ciupitu对this similar question的回答,用}应该可以解决这个问题。在
figure()
代替{相关问题 更多 >
编程相关推荐