Ich verwende Matplotlib in einer Django-App und möchte das gerenderte Bild direkt zurückgeben.
Bis jetzt kann ich plt.savefig(...)
gehen und dann den Ort des Bildes zurückgeben.
Was ich machen möchte ist:
%Vor%Irgendwelche Ideen?
Es gibt ein Rezept im Matplotlib-Kochbuch , das genau das tut. Im Kern sieht es so aus:
%Vor%Setzen Sie das in Ihre Sichten-Datei, zeigen Sie Ihre URL darauf, und Sie sind los und laufen.
Bearbeiten: Wie bereits erwähnt, ist dies eine vereinfachte Version eines Rezepts im Kochbuch. Es sieht jedoch so aus, als ob es einen Unterschied zwischen dem Aufruf von print_png
und savefig
gibt, zumindest beim ersten Test, den ich gemacht habe. Der Aufruf von fig.savefig(response, format='png')
ergab ein Bild, das größer war und einen weißen Hintergrund hatte, während das ursprüngliche canvas.print_png(response)
ein etwas kleineres Bild mit einem grauen Hintergrund lieferte. Also würde ich die letzten Zeilen oben durch ersetzen:
Sie müssen die Leinwand jedoch trotzdem instanziiert haben.
Setze ein Ducktyping ein und übergib ein eigenes Objekt in Verkleidung des Dateiobjekts
%Vor%Sie können myfile = StringIO.StringIO () stattdessen in echtem Code verwenden und Daten in der Antwort z. B.
zurückgeben %Vor%Tags und Links python django matplotlib