在HTTP响应中返回图像

时间:2017-07-18 08:57:29

标签: python django matplotlib

计算散点图
plt.scatter(...)

我可以使用

预览图表
plt.show()

但是,我希望使用某种函数保存绘图,例如savefig()将图像存储在变量而不是文件中,然后将http响应中的变量作为django web framework中的content / png返回

4 个答案:

答案 0 :(得分:1)

您可以将绘图作为png图像返回,如下所示:

from matplotlib.backends.backend_agg import FigureCanvasAgg
from matplotlib.figure import Figure
from django.http import HttpResponse

def graph(request):
    fig = Figure()

    # draw your plot here ......
    ax = fig.add_subplot(111)
    # .............

    canvas = FigureCanvasAgg(fig)
    response = HttpResponse(content_type = 'image/png')
    canvas.print_png(response)
    return response

但是,因为matplotlib 2.2.0 print_png函数不再使用HttpResponse。

答案 1 :(得分:0)

答案 2 :(得分:0)

我建议您使用专为此设计的netstat -ntapc | grep :80 | grep EST here's a guide

具体来说,请查看mpld3

答案 3 :(得分:0)

进一步搜索后,我找到了Returning MatPotLib image as string

这个解决方案解决了我的问题。谢谢大家的帮助。