Ich verwende matplotlib, um in einer Web-App einige Abbildungen darzustellen. Ich habe fig.savefig()
verwendet, als ich nur Skripte ausgeführt habe. Allerdings benötige ich eine Funktion, die ein tatsächliches ".png"-Bild zurückgibt, damit ich es in meinem HTML aufrufen kann.
Weitere (möglicherweise unnötige) Informationen: Ich verwende Python Flask. Ich dachte, ich könnte fig.savefig()
verwenden und die Abbildung einfach in meinen statischen Ordner legen und sie dann von meinem HTML aufrufen, aber ich würde das lieber nicht jedes Mal tun. Es wäre optimal, wenn ich einfach die Abbildung erstellen könnte, ein Bild davon machen, dieses Bild zurückgeben und es von meinem HTML aufrufen könnte, dann wäre es weg.
Der Code, der die Abbildung erstellt, funktioniert. Allerdings gibt er eine Abbildung zurück, die anscheinend nicht mit HTML funktioniert.
Hier rufe ich draw_polygon
im Routing auf, draw_polygon
ist die Methode, die die Abbildung zurückgibt:
@app.route('/images/')
def images(cropzonekey):
fig = draw_polygons(cropzonekey)
return render_template("images.html", title=cropzonekey, figure = fig)
Und hier ist das HTML, in dem ich versuche, das Bild zu generieren.
{{ title }} - Bild
Und, wie Sie wahrscheinlich erraten können, wenn ich die Seite lade, bekomme ich nur Platzhalterbild
. Also mochten sie das Format nicht, in dem ich die Abbildung eingespeist habe.
Weiß jemand, welche matplotlib Methoden/Workarounds eine Abbildung in ein tatsächliches Bild umwandeln? Ich habe die Dokumentation durchsucht, aber ich finde nichts. Danke!
Übrigens: Ich dachte, es wäre nicht notwendig, den Python-Code einzuschließen, der die Abbildung erstellt, aber ich kann ihn einschließen, wenn ihr ihn sehen müsst (wollte die Frage nur nicht überladen)