2010-07-28 14 views
19

Ich verwende derzeit Open Flash Chart 2 auf meiner Django-Website, aber ich finde es nicht ausreichend anpassbar. (Es ist toll, wenn Sie die üblichen Barcharts, Piecharts, aber was ist mit hausgemachten Formen ...). Obwohl es Open Source ist, habe ich keine Lust im Flex-Code zu tauchen.Matplotlib: interaktives Plot auf einem Webserver

Ich denke viel über Matplotlib, aber die documentation ist eher schlecht auf Web-Anwendung Entwicklung.

Verwendet jemand matplotlib in seiner Web-App? Ich würde schätzen, Links auf diesen Websites, um herauszufinden, was erreicht werden kann. Dank

Antwort

16

Wenn Sie in einer Webanwendung nach Flash-ähnlicher Interaktivität suchen, ist matplotlib wahrscheinlich nicht das, wonach Sie suchen. Es eignet sich jedoch gut zum Rendern eines statischen Bilds in einer Web-App. (und ist erstaunlich flexibel)

Es gab jedoch eine Menge neuer Entwicklungen, die matplotlib mehr auf Web-Interaktivität ausgerichtet haben. Sehen Sie sich das neue HTML5/Canvas-Backend an. http://code.google.com/p/mplh5canvas/ Es ist noch nicht ganz fertig, aber es lohnt sich trotzdem, damit zu spielen.

+1

+1 von mir; keine Ahnung vom HTML 5/Matplotlib-Projekt, obwohl ich mich sehr freue, es zu sehen. – doug

+0

Danke Joe. Weißt du, ob diese mplh5canvas mir erlauben wird, die ginput() Funktion in einer Web App zu benutzen? – chimpsarehungry

+1

Mit der neuen "webagg" in Matplotlib 1.3 können Sie interaktive Plots im Browser haben, und ich denke, es sollte möglich sein, sie in einer Website zu verwenden (aber nicht versucht haben und keine Beispiele gesehen haben). – jorgeca

3

Sie können MPLD3 verwenden, um Ihre vorhandenen Matplotlib-Dateien in den Browser zu exportieren.
Matplotlib selbst ist sehr mächtig, aber ich stimme zu, die Dokumentation ist nicht sehr umfangreich.
Ich habe es gelernt, indem ich einfach Dinge ausprobiere und Beispiele im Internet finde.
'Matplotlib Beispiel X' wo X ist etwas über das, was Sie versuchen zu plotten finden Sie überraschend viel Code im Netz.

2

Eine alte Frage mit dem aktuellen Stand der Dinge wiederbeleben. Ab Herbst 2013 gibt es nun ein Beispiel für matplotlib des WebAgg Backend in einem Tornado-basierten Webserver Einbetten: https://github.com/matplotlib/matplotlib/blob/master/examples/user_interfaces/embedding_webagg.py

Diese Verwendung von WebSockets macht die Figur Updates an den Browser zu senden, die für wirklich schöne interaktive Plots ermöglicht die gerendert erhalten Client-Seite. Dies bedeutet, dass keine Bilder auf dem Server erzeugt werden!