回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我使用Python3.4和Django1.8。我想在Django模板中“打印”matplotlib结果。我几天前就知道了,所以我继续我的Django应用程序中的其他内容。现在,我不知道为什么,我要把结果显示给一个朋友,我的模板和一个matplotlib图,现在显示一个大的代码!我不知道为什么会发生这种情况,因为我的观点在任何事情上都没有改变,从它显示正确的图表!请帮帮我!</p>
<p>这是我的观点!</p>
<pre><code>from django.shortcuts import render
from matplotlib import pylab
from pylab import *
import PIL
import PIL.Image
import io
from io import *
def graphic(request):
pos = arange(10)+ 2
barh(pos,(1,2,3,4,5,6,7,8,9,10),align = 'center')
yticks(pos,('#hcsm','#ukmedlibs','#ImmunoChat','#HCLDR','#ICTD2015','#hpmglobal','#BRCA','#BCSM','#BTSM','#OTalk'))
xlabel('Popularity')
ylabel('Hashtags')
title('Hashtags')
subplots_adjust(left=0.21)
buffer = io.BytesIO()
canvas = pylab.get_current_fig_manager().canvas
canvas.draw()
graphIMG = PIL.Image.fromstring('RGB', canvas.get_width_height(), canvas.tostring_rgb())
graphIMG.save(buffer, "PNG")
content_type="Image/png"
buffercontent=buffer.getvalue()
graphic = (buffercontent ,content_type)
pylab.close()
return render(request, 'graphic.html',{'graphic':graphic})
</code></pre>
<p>当然,在graphic.html中,blockcontent中有一个名为{{graphic}}的变量!</p>
<p>这在我的模板中显示了正确的结果!发生了什么事?
现在,有时当我运行模板时,它会显示一个大代码,或者只显示这个django错误:</p>
<p>异常值:<br/>
主线程不在主循环中</p>
<p>异常位置:C:\ Python34\lib\site packages\matplotlib\backends\tkagg.py in blit,第17行</p>
<p>救命啊!</p>