在Django中以HTML显示mpld3图表

3 投票
1 回答
2236 浏览
提问于 2025-04-18 15:34

我正在使用mpld3这个工具,把matplotlib绘制的图表放到一个HTML页面里,使用的是django框架。我用mpld3.fig_to_dict这个方法,把matplotlib的图形转换成一个字符串,然后把它保存在一个JSON变量里。

但是我不知道怎么在HTML中调用这个JSON变量。

<div id="fig01"></div>

<script type="text/javascript">
var json01 = { <snip JSON code> };
mpld3.draw_figure("fig01", json01);
</script>

这个JSON变量是在views.py文件中创建的:

json01 = json.dumps(mpld3.fig_to_dict(fig))
return render_to_response('plot/main.html', json01)

这段代码返回的是一个空白的HTML页面。我也试着用其他方式调用这个JSON变量,但也没有成功。

var json01 = "{{json01}}";

我觉得问题可能出在javascript变量上,因为当我在javascript中设置图表的点时,一切都正常。

1 个回答

5

答案是……

在 views.py 文件中:

js_data = json.dumps(mpld3.fig_to_dict(fig))
return render_to_response('plot.html', {"my_data": js_data})

然后在模板中:

graph = {{ my_data|safe }};

mpld3.draw_figure("fig01", graph);

撰写回答