从flask服务返回MatplotLib图像不适用于丰富的格式

时间:2018-05-15 16:39:47

标签: python matplotlib flask

我已经创建了一个托管在Flask上的Python应用程序并发布了一些图像,当我使用axis.plot功能发布一个普通的情节时它工作得很好但是当我想添加富文本,更好的格式化等等时它就不会渲染任何图像图片,这里的样本可重现代码

{{1}}

这是第一种方法' graph.png'给出结果enter image description here

但第二种方法' PtgGraph.png'给出空白结果,请帮忙

1 个答案:

答案 0 :(得分:0)

经过大量的分析,我发现定义了一个图形,即 plt.figure(1) ,并且一旦绘图功能结束将图中的图形传递给它结果即 canvas = FigureCanvas(plt.figure(1))

class PltGraph(Resource):
    def get(self):
        fig = Figure()
        xs = range(100)
        ys = [random.randint(1, 50) for x in xs]
        plt.figure(1)
        plt.plot(xs,ys)
        plt.ylabel("Y label")
        plt.xlabel("X label")
        plt.title("x and y")
        canvas = FigureCanvas(plt.figure(1)) 
        output = BytesIO()
        canvas.print_png(output)
        response = make_response(output.getvalue())
        response.mimetype = 'image/png'
#        print(response)
        return response