【发布时间】:2013-12-05 02:56:59
【问题描述】:
我正在使用 matplotlib 在 Web 应用程序中渲染一些图形。我之前在运行脚本时使用过fig.savefig()。但是,我需要一个函数来返回一个实际的“.png”图像,以便我可以用我的 HTML 调用它。
更多(可能是不必要的)信息:我正在使用 Python Flask。我想我可以使用 fig.savefig() 并将图形粘贴在我的静态文件夹中,然后从我的 HTML 中调用它,但我不想每次都这样做。如果我可以创建图形,从中制作图像,返回该图像,然后从我的 HTML 中调用它,那将是最佳选择,然后它就消失了。
创建图形的代码有效。但是,它返回一个数字,我猜它不适用于 HTML。
这里我在路由中调用draw_polygon,draw_polygon是返回图的方法:
@app.route('/images/<cropzonekey>')
def images(cropzonekey):
fig = draw_polygons(cropzonekey)
return render_template("images.html", title=cropzonekey, figure = fig)
这是我尝试生成图像的 HTML。
<html>
<head>
<title>{{ title }} - image</title>
</head>
<body>
<img src={{ figure }} alt="Image Placeholder" height="100">
</body>
</html>
而且,正如您可能猜到的,当我加载页面时,我得到的只是Image Placeholder。所以,他们不喜欢我输入这个数字的格式。
任何人都知道 matplotlib 方法/解决方法可以将图形变成实际图像吗?我到处都是这些文档,但我找不到任何东西。谢谢!
顺便说一句:认为没有必要包含制作该图的 python 代码,但如果你们需要查看它,我可以包含它(只是不想让问题变得混乱)
【问题讨论】:
-
最近做了一些工作以使 mpl 与 google appEnigne 配合得很好,有关此的讨论包括如何处理此类事情的示例。另一种选择是像 ipython notebook 那样做,它将 png 转换为字符串并直接嵌入。
标签: python html image matplotlib flask