我用Django制作网页。我试图让一个用matplotlib创建的条形图出现在我的网页上,但是收到了以下错误消息:我还没有定义属性“canvas”:Traceback:
File "C:\Python3.6\lib\site-packages\django\core\handlers\exception.py" in inner
35. response = get_response(request)
File "C:\Python3.6\lib\site-packages\django\core\handlers\base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)
File "C:\Python3.6\lib\site-packages\django\core\handlers\base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\JNPou\Desktop\Den bæredygtige back-up\kogebog\opskriftssoegning\views.py" in Opskriftsside
136. json1 = json.dumps(mpld3.fig_to_dict(bar_plot))
File "C:\Python3.6\lib\site-packages\mpld3\_display.py" in fig_to_dict
167. Exporter(renderer, close_mpl=False, **kwargs).run(fig)
File "C:\Python3.6\lib\site-packages\mpld3\mplexporter\exporter.py" in run
45. if fig.canvas is None:
Exception Type: AttributeError at /opskriftssoegning/kartoffelsuppe-med-porrer/
Exception Value: 'tuple' object has no attribute 'canvas'
下面是创建绘图的Python代码:
^{pr2}$
创建绘图后,我将其分配到Django视图中的字典:import os
import json
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt, mpld3
from .plots import red_yellow_green_gradient, make_bar_plot
[...]
def Opskriftsside(request,slug):
[...]
bar_plot = make_bar_plot()
json1 = json.dumps(mpld3.fig_to_dict(bar_plot)) #THINGS GO WRONG HERE
context['bar_plot']=bar_plot
context['json1']=json1
return render(request,'opskriftssoegning/opskrift.html',context)
最后,这是相关的HTML代码:
var json1 = { json.dumps(mpld3.fig_to_dict(fig)) };
mpld3.draw_figure("fig", json1);
我的问题是:如何为pyplot图形指定画布?在