plt.figure(figsize=(8, 8))
sns.heatmap(conf_matrix, annot=True, fmt="d");
plt.title("Confusion matrix")
plt.ylabel('True class')
plt.xlabel('Predicted class')
html_fig = mpld3.fig_to_html(plt,template_type='general')
plt.close(plt)
HTML文件中的代码以获取图像:
<div id="fig_container">
{{ div_figure|safe }}
</div>
使用Python
和Django
的最新版本。执行属性时显示错误
模块'matplotlib.pyplot'没有属性'canvas'
我是新手,无法解决该错误。请帮忙!!!
答案 0 :(得分:0)
我有一个类似的问题。您现在可能已经解决了问题,但是无论如何我都在发布答案。
这里的重点是mpld3与matplotlib中使用的 fig 对象一起使用。像这样:
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4])
html_fig = mpld3.fig_to_html(fig)
因此,对于您的解决方案,您应该从Seaborn图中获取图形对象。可以通过这种方式完成(带有ax参数):
fig, ax = plt.subplots()
sns.heatmap(conf_matrix, annot=True, fmt="d", ax=ax)
html_fig = mpld3.fig_to_html(fig)
或者这样:
fig = sns.heatmap(conf_matrix, annot=True, fmt="d").get_figure()
html_fig = mpld3.fig_to_html(fig)
如果您想使用mpld3在Django项目中一般包含seaborn图和matplotlib,我建议查看this question