Hübsche Grafiken und Diagramme in Python [geschlossen]

130

Welche Bibliotheken stehen zur Verfügung, um hübsche Diagramme und Grafiken in einer Python-Anwendung zu erstellen?

sverrejoh
quelle
22
Ich bin mir nicht sicher, warum dieser geschlossen wurde. Es lädt keine Flammenkriege oder Meinungen ein und hat eine Reihe klarer Antworten: Es gibt nur eine Handvoll Python-Plotbibliotheken.
Alex B
7
Warum ist das geschlossen? Dies ist eine nützliche Frage. Wie auch immer, meine Empfehlung ist, sich pip search plotanzuschauen, was auf mich zukommt. Ich habe Pygal auf diese Weise entdeckt und Pygal sieht großartig aus.
Mark E. Haase
Erwähnenswert ist auch, dass diese Frage ganz oben auf einer Google-Suche nach "Charting Python" steht - Grund genug, sie erneut zu öffnen.
George Lund
Diese Frage ist nützlich, sie sollte nicht geschlossen werden. Andere Optionen sind Bokeh und PyX
Atomh33ls

Antworten:

50

Ich bin derjenige, der CairoPlot unterstützt, und ich bin sehr stolz darauf, dass es hier aufgetaucht ist. Sicherlich ist matplotlib großartig, aber ich glaube, CairoPlot sieht besser aus. Für Präsentationen und Websites ist dies eine sehr gute Wahl.

Heute habe ich Version 1.1 veröffentlicht. Wenn Sie interessiert sind, schauen Sie sich CairoPlot v1.1 an

EDIT: Nach einem langen und kalten Winter wird CairoPlot wieder entwickelt. Schauen Sie sich die neue Version auf GitHub an .

Rodrigo
quelle
2
Sieht gut aus, ich würde es gerne versuchen. Gibt es Pläne, ein Windows-Installationsprogramm für Python 2.6 zu erstellen?
Mönch
Kein Problem für den Support, da stimme ich zu. Vielen Dank für das Kompliment: D
Rodrigo
Sie haben gerade stackoverflow.com/questions/359727#520049 hinzugefügt, damit Sie abstimmen können, wenn Sie möchten.
VonC
1
Cairoplot funktioniert bei großen Datenmengen allerdings nicht so gut (korrigieren Sie mich, wenn ich falsch liege). Sie können der Achse keine Beschriftungen hinzufügen, um die hlabels oder vlabels zusammenzufassen. Ich kann sowieso nicht sehen, um mehrere Linien in einem Diagramm zu zeichnen oder die verwendeten Farben zu steuern. Ich könnte mich an dem Drehbuch abhacken ... zu matplotlib wechseln ...
Jon
Jeder sollte Jons Kommentar ignorieren, es ist sehr einfach, die Achse zu beschriften und die verwendeten Farben zu definieren ... Beispiele finden Sie unter tests.py. Trotzdem danke für eine nette Bibliothek.
Daniel Magnusson
38

Für die interaktive Arbeit ist Matplotlib der ausgereifte Standard. Es bietet eine OO-API sowie eine interaktive Matlab-API.

Chaco ist eine modernere Plotbibliothek der Enthought. Es verwendet die Kiva-Vektorzeichnungsbibliothek von Enthought und arbeitet derzeit nur mit Wx und Qt mit OpenGL (Matplotlib verfügt über Backends für Tk, Qt, Wx, Cocoa und viele Bildtypen wie PDF, EPS, PNG usw.). Die Hauptvorteile von Chaco sind seine Geschwindigkeit im Vergleich zu Matplotlib und seine Integration in die Traits-API von Enthought für interaktive Anwendungen.

Barry Wark
quelle
2
Ich stimme zu, dass matplotlib von allen APIs tatsächlich die ausgereifteste und funktionsreichste zu sein scheint (und auch weiterhin unterstützt und weiterentwickelt wird). Gehen Sie einfach zu seiner "Galerie", um verschiedene Beispiele (mit entsprechendem Quellcode) zu sehen: matplotlib.sourceforge.net/gallery.html . Ich würde jedoch sagen, dass seine API kompliziert ist - Methodennamen machen mich verrückt :) Wenn ich über "komplizierte" und einfache Beispiele spreche, hat mir dieser Blog-Beitrag sehr geholfen, mit matplotlib zu beginnen: shreevatsa.wordpress .com / 2010/03/07 / matplotlib-tutorial
Timur
Entschuldigung, ich muss auch hinzufügen, dass matplotlib nicht nur interaktiv ist - Sie können Plot / Diagramm tatsächlich in einer Datei speichern. Zum Beispiel. PNG, PDF oder SVG.
Timur
18

Sie können auch pygooglechart verwenden , das die Google Chart-API verwendet . Dies ist nicht etwas, das Sie immer verwenden möchten, aber wenn Sie eine kleine Anzahl guter, einfacher Diagramme möchten und immer online sind, und insbesondere, wenn Sie ohnehin in einem Browser anzeigen, ist dies eine gute Wahl.

Tony Meyer
quelle
7
Ein Wort der Warnung: Die von Google erstellten Diagramme sind in ihrer Größe eher begrenzt (Breite * Höhe <= 300.000 Pixel). Außerdem wird Google Charts (nicht die Python-API) mit selbst bescheidenen Datensätzen ersticken. Ansonsten sind sie großartig.
Pat Notz
1
Google Image Charts sind weiterhin verfügbar, jedoch veraltet. Weitere Informationen finden Sie unter developer.google.com/chart/image/?hl=nl
ndequeker
15

Sie haben nicht erwähnt, welches Ausgabeformat Sie benötigen, aber reportlab kann Diagramme sowohl im PDF- als auch im Bitmap-Format (z. B. PNG) erstellen.

Hier ist ein einfaches Beispiel für ein Balkendiagramm im PNG- und PDF-Format:

from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.barcharts import VerticalBarChart

d = Drawing(300, 200)

chart = VerticalBarChart()
chart.width = 260
chart.height = 160
chart.x = 20
chart.y = 20
chart.data = [[1,2], [3,4]]
chart.categoryAxis.categoryNames = ['foo', 'bar']
chart.valueAxis.valueMin = 0

d.add(chart)
d.save(fnRoot='test', formats=['png', 'pdf'])

Alternativtext http://i40.tinypic.com/2j677tl.jpg

Hinweis: Das Bild wurde vom Bildhost in JPG konvertiert.

serbaut
quelle
2
Wenn eine Ausnahme angezeigt wird "RenderPMError: Kann setFont (Times-Roman) die T1-Dateien nicht vermissen?" (wie ich es bekommen habe) auf d.save im obigen Code - Die Lösung besteht darin, reportlab.org/ftp/fonts/pfbfer.zip im Verzeichnis reportlabs / fornts herunterzuladen und zu extrahieren
Shekhar
+1 für die Erstellung eines praktischen Beispiels.
Vmassuchetto
6

CairoPlot

Elmarco
quelle
2
Warum ist es gut? Hast du es benutzt?
Nick
Ja, ich habe dot_line_plot () in Reporting- / Statistik-Tools verwendet. Es ist hübsch und einfach. Siehe die Top-Antwort von Rodrigo zu Matplotlib und CairoPlot. Ich benutze auch Matplotlib. Tatsächlich benutze ich es gerade.
Elmarco
Seltsame Leute haben Ihre Antwort nicht verstanden, aber die aktuell am besten gewählte Antwort.
Pihentagy
Ich denke, dies würde mehr positive Stimmen bekommen, wenn es ein minimales Beispiel gäbe. Ihre Antwort wird unbrauchbar, wenn der Link tot ist.
Martin Thoma
danke, der blog hat schon viele informationen. und der Autor selbst antwortete hier später mit weiteren Details.
Elmarco
6

Ich habe Pychart verwendet und fand es sehr einfach.

http://home.gna.org/pychart/

Es ist alles native Python und hat keine Busladung von Abhängigkeiten. Ich bin mir sicher, dass matplotlib sehr schön ist, aber ich würde es tagelang herunterladen und installieren und ich möchte nur ein Maß-Balkendiagramm!

Es scheint in ein paar Jahren nicht aktualisiert worden zu sein, aber hey, es funktioniert!

Tullaman
quelle
4

Haben Sie sich mit ChartDirector für Python befasst ?

Ich kann nicht darüber sprechen, aber ich habe ChartDirector für PHP verwendet und es ist ziemlich gut.

Thomas Owens
quelle
ChartDirector funktioniert gut mit Python. Ich habe es regelmäßig verwendet, um mehrzeilige Diagramme zu erstellen.
Pwdyson
4

Wenn Sie gnuplot zum Plotten verwenden möchten , sollten Sie Gnuplot.py in Betracht ziehen . Es bietet eine objektorientierte Schnittstelle zu gnuplot und ermöglicht es Ihnen, Befehle direkt an gnuplot zu übergeben. Leider wird es nicht mehr aktiv entwickelt.

mhagger
quelle
3

Ich bin ein Fan von PyOFC2: http://btbytes.github.com/pyofc2/

Es ist nur ein Paket, das es einfach macht, die für Open Flash Charts 2 benötigten JSON-Daten zu generieren, die sehr schön sind. Schauen Sie sich die Beispiele unter dem obigen Link an.

Gourneau
quelle
0

Sie können auch Google Charts in Betracht ziehen .

Technisch gesehen keine Python-API, aber Sie können sie von Python aus verwenden. Die Codierung ist relativ schnell und die Ergebnisse sehen in der Regel gut aus. Wenn Sie Ihre Grundstücke zufällig online nutzen, ist dies eine noch bessere Lösung.

Tyler
quelle
0

PLplot ist ein plattformübergreifendes Softwarepaket zum Erstellen wissenschaftlicher Diagramme. Sie sind nicht sehr hübsch (Blickfang), aber sie sehen gut genug aus. Schauen Sie sich einige Beispiele an (sowohl Quellcode als auch Bilder).

Mit der PLplot-Kernbibliothek können Standard-XY-Diagramme, Semi-Log-Diagramme, Log-Log-Diagramme, Konturdiagramme, 3D-Oberflächendiagramme, Netzdiagramme, Balkendiagramme und Kreisdiagramme erstellt werden. Es läuft unter Windows (2000, XP und Vista), Linux, Mac OS X und anderen Unices.

Cristian Ciupitu
quelle