Piuttosto grafici e diagrammi in Python [chiuso]


130

Quali sono le librerie disponibili per la creazione di graziosi diagrammi e grafici in un'applicazione Python?


22
Non sono sicuro del perché questo sia stato chiuso. Non invita guerre di fiamma o opinioni e ha una serie di risposte chiare: ci sono solo una manciata di librerie per la stampa di Python.
Alex B,

7
Perché è chiuso? Questa è una domanda utile Ad ogni modo, la mia raccomandazione è di pip search plotvedere cosa succede. Ho scoperto Pygal facendo questo, e Pygal ha un bell'aspetto.
Mark E. Haase,

Vale anche la pena notare che questa domanda si pone in cima alla ricerca di Google per "tracciare un pitone" - motivo sufficiente per riaprirlo.
George Lund,

Questa domanda è utile, non dovrebbe essere chiusa. Altre opzioni includono bokeh e PyX
atomh33ls,

Risposte:


50

Sono io a sostenere CairoPlot e sono molto orgoglioso che sia venuto qui. Sicuramente matplotlib è fantastico, ma credo che CairoPlot sia più bello. Quindi, per presentazioni e siti Web, è un'ottima scelta.

Oggi ho rilasciato la versione 1.1. Se interessati, dai un'occhiata a CairoPlot v1.1

EDIT: dopo un inverno lungo e freddo, CairoPlot è di nuovo in fase di sviluppo. Scopri la nuova versione su GitHub .


2
Sembra buono, mi piacerebbe provarlo. Hai in programma di creare un programma di installazione di Windows per Python 2.6?
monkut,

Nessun problema per il supporto, in quanto sono d'accordo. Grazie per il complimento: D
Rodrigo,

Ho appena aggiunto stackoverflow.com/questions/359727#520049 per il tuo voto negativo, se lo desideri.
VonC,

1
Cairoplot in realtà non funziona così bene per grandi quantità di dati (correggimi se sbaglio). Non è possibile aggiungere etichette all'asse per riepilogare gli hlabel o i vlabel. Non riesco comunque a tracciare più linee su un grafico o avere alcun controllo sui colori utilizzati. Potrei tagliare via la sceneggiatura ... passare a matplotlib ...
Jon

Tutti dovrebbero ignorare il commento di Jon, è molto facile etichettare l'asse e definire i colori usati ... Controlla tests.py per esempi. Comunque, grazie per una bella lib.
Daniel Magnusson,

38

Per il lavoro interattivo, Matplotlib è lo standard maturo. Fornisce un'API in stile OO e un'API interattiva in stile Matlab.

Chaco è una biblioteca di complotti più moderna della gente di Enthought. Utilizza la libreria di disegno vettoriale Kiva di Enthought e attualmente funziona solo con Wx e Qt con OpenGL (Matplotlib ha backend per Tk, Qt, Wx, Cocoa e molti tipi di immagini come PDF, EPS, PNG, ecc.). I principali vantaggi di Chaco sono la sua velocità rispetto a Matplotlib e la sua integrazione con l'API Traits di Enthought per applicazioni interattive.


2
Concordo sul fatto che tra tutte le API - matplotlib sembra essere in effetti la più matura e ricca di funzionalità (ed è ancora supportata e ulteriormente sviluppata). Basta andare alla sua "galleria" per vedere vari esempi (con il codice sorgente secondo): matplotlib.sourceforge.net/gallery.html . Tuttavia, direi che la sua API è, beh ..., complicata - i nomi dei metodi mi stanno facendo impazzire :) Parlando di esempi "complicati" e semplici - questo post sul blog mi ha aiutato molto a iniziare con matplotlib: shreevatsa.wordpress .com / 2010/03/07 / matplotlib-tutorial
Timur,

Siamo spiacenti, devo aggiungere anche che matplotlib non è solo interattivo, ma puoi effettivamente salvare trama / grafico in un file. Per es. PNG, PDF o SVG.
Timur,

18

Puoi anche utilizzare pygooglechart , che utilizza l' API di Google Chart . Questo non è qualcosa che vorresti sempre usare, ma se vuoi un piccolo numero di grafici buoni, semplici, e sei sempre online, e soprattutto se stai visualizzando comunque in un browser, è una buona scelta.


7
Un avvertimento, i grafici che Google ti consente di creare hanno dimensioni piuttosto limitate (larghezza * altezza <= 300.000 pixel). Inoltre, Google Charts (non l'API Python) si strozzerà con set di dati di dimensioni anche modeste. Altrimenti, sono fantastici.
Pat Notz,

1
I grafici di Google Image sono ancora disponibili, ma obsoleti. Per maggiori informazioni, vai su developers.google.com/chart/image/?hl=nl
ndequeker

15

Non hai menzionato il formato di output di cui hai bisogno, ma reportlab è bravo a creare grafici sia in formato pdf che bitmap (es. Png).

Ecco un semplice esempio di un grafico a barre in formato png e pdf:

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'])

testo alternativo http://i40.tinypic.com/2j677tl.jpg

Nota: l'immagine è stata convertita in jpg dall'host immagine.


2
Se ottieni un'eccezione "RenderPMError: Impossibile impostareFont (Times-Roman) mancante dei file T1?" (come ho ottenuto) su d.save nel codice sopra - La soluzione è scaricare ed estrarre reportlab.org/ftp/fonts/pfbfer.zip nella directory reportlabs / fornts
Shekhar,

+1 per lo sforzo di generare un esempio pratico.
vmassuchetto,

6

2
Perché va bene? L'hai usato?
Nick,

Sì, ho usato dot_line_plot () negli strumenti di reporting / stats. È carino e facile. Guarda la risposta principale di Rodrigo su Matplotlib e CairoPlot. Uso anche Matplotlib. In effetti, lo sto usando proprio ora.
elmarco,

Persone strane non hanno colto la tua risposta, ma la risposta attualmente più votata.
Pihentagy,

Penso che ciò darebbe più voti se ci fosse un esempio minimo. La tua risposta diventerà inutile quando il link è morto.
Martin Thoma,

grazie, il blog ha già molte informazioni. e l'autore stesso ha risposto qui con maggiori dettagli in seguito.
elmarco

6

Ho usato Pychart e ho pensato che fosse molto semplice.

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

È tutto nativo di Python e non ha un carico di bus di dipendenze. Sono sicuro che matplotlib è adorabile, ma vorrei scaricare e installare per giorni e voglio solo un grafico a barre misurato!

Non sembra essere stato aggiornato da qualche anno, ma ehi funziona!




4

Se ti piace usare gnuplot per la stampa, dovresti considerare Gnuplot.py . Fornisce un'interfaccia orientata agli oggetti a gnuplot e consente anche di passare i comandi direttamente a gnuplot. Sfortunatamente, non viene più sviluppato attivamente.




3

Sono un fan di PyOFC2: http://btbytes.github.com/pyofc2/

È solo un pacchetto che semplifica la generazione dei dati JSON necessari per Open Flash Charts 2, che sono molto belli. Dai un'occhiata agli esempi sul link sopra.



0

Potresti anche prendere in considerazione i grafici di Google .

Tecnicamente non è un'API di Python, ma puoi usarla da Python, è abbastanza veloce da programmare e i risultati tendono a sembrare belli. Se ti capita di usare le tue trame online, questa sarebbe una soluzione ancora migliore.


0

PLplot è un pacchetto software multipiattaforma per la creazione di grafici scientifici. Non sono molto belli (accattivanti), ma sembrano abbastanza belli. Dai un'occhiata ad alcuni esempi (sia codice sorgente che immagini).

La libreria principale PLplot può essere utilizzata per creare grafici xy standard, grafici semi-log, grafici log-log, grafici di contorno, grafici di superfici 3D, grafici mesh, grafici a barre e grafici a torta. Funziona su Windows (2000, XP e Vista), Linux, Mac OS X e altri Unices.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.