我正在开发一个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为您呈现的页面。
答案 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)