html画布的定义,如何为pyplot定义画布以便在HTML文档中绘图?

我用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图形指定画布?在