使用MPLD3将图形添加到Django项目中。

时间:2014-06-09 19:55:13

标签: python django matplotlib

我正在开发一个Django项目,我希望从CSV中获取数据,并将它们绘制到使用Django的视图/模板构建的页面。继承了我到目前为止的代码:

import matplotlib.pyplot as plt, mpld3

graph = plt.plot([1,2,3,4])
g = mpld3.fig_to_html(graph)
return HttpResponse(g)

然而,当我运行这个时,我得到错误:

AttributeError: 'list' object has no attribute 'savefig'

任何人都知道我哪里出错,或者我如何创建我可以添加到已有页面的图表,而不是MPLD3为您呈现的页面。

2 个答案:

答案 0 :(得分:1)

plt.plot返回Line2D对象列表,而不是图形对象。

你想要做的是:

import matplotlib.pyplot as plt, mpld3
fig = plt.figure()
fid=plt.plot([3,1,4,1,5])
mpld3.save_html(fig,"test.html")
mpld3.fig_to_html(fig,template_type="simple")
mpld3.show()

答案 1 :(得分:1)

与写@hck3r一样,plt.plot返回Line2D对象列表,而不是图形对象。您几乎不需要修改代码:

import matplotlib.pyplot as plt, mpld3

fig = plt.figure()
plt.plot([1,2,3,4])
g = mpld3.fig_to_html(fig)
return HttpResponse(g)