2009-03-11 16 views
21

Sto cercando una libreria per generare diagrammi svg in python (recupero i dati da un database sql). Ho trovato python-gd, ma non ha molta documentazione e l'ultimo aggiornamento è stato nel 2005, quindi mi chiedo se ci sono altre librerie che sono buone per questo scopo.diagrammi svg usando python

sto pensando principalmente semplici grafici a linee, qualcosa di simile a this: example line graph

+0

Potresti chiarire quali schemi intendi generare? – Rodrigo

+0

Ho aggiornato la descrizione. – Zitrax

+0

Ok, ho aggiornato la mia risposta per rispondere meglio alla tua domanda. – Rodrigo

risposta

10

Mentre stai cercando una grafica semplice, probabilmente, CairoPlot si adatta alle tue esigenze in quanto può generare file di output svg fuori dalla scatola. Dai uno sguardo allo this.

CairoPlot - DotLinePlot

Questa immagine esempio mostra solo alcune delle sue capacità. Usando la versione trunk disponibile a launchpad, potrai aggiungere una casella legenda e aggiungere titoli di assi.

Oltre a ciò, utilizzando la versione tronco, è possibile generare:

  • classifiche dotline (quelli Credo che hai bisogno)
  • grafici a dispersione
  • grafici
  • Pie/ciambella
  • orizzontale/Vertical Bar charts
  • diagrammi di Gantt
+0

Ho finito per usare questo perché non faccio niente di più avanzato. Tuttavia non sono mai riuscito a trovare come ottenere quelle piccole leggende stampate a destra, né dal bagagliaio né in 1.1, ma puoi comunque leggere le leggende in una scatola. – Zitrax

+0

Sì, le piccole leggende sulla destra sono state rimosse nelle versioni più recenti in quanto non funzionavano bene per molti valori (come puoi vedere sopra). L'unica opzione, al giorno d'oggi, è usare la scatola nell'angolo in alto a destra (disponibile solo nella versione trunk). – Rodrigo

7

Ecco un general purpose libreria SVG in Python: pySVG.

+1

Ma non è gratuito per uso commerciale. –

10

Provare a utilizzare matplotlib. È possibile configurarlo con un SVG backend.

+3

Anche se ho usato questo, e funziona, ho sempre trovato matplotlib piuttosto goffo con cui lavorare. Preferisco quasi tutte le altre librerie grafiche su Matplotlib. – Cerin

9

PyChart"è una libreria Python per la creazione di alta qualità Encapsulated PostScript, PDF, PNG o SVG grafici."

+2

Posso solo dire che dopo aver usato CairoPlot per un po 'sono passato a PyChart che è molto più configurabile. – Zitrax

9

pyCairo è un'opzione che vale la pena guardare.

+1

Pycairo non solo può scrivere in SVG. Con poche righe di codice modificate, è possibile scrivere gli stessi dati su PDF o PNG. Molto flessibile –

6

È possibile utilizzare Graphviz per generare diagrammi in formato SVG. Ci sono collegamenti Python a Graphviz ad es., pydot - Interfaccia Python al linguaggio Dot di Graphviz.

+1

Mentre Graphviz è ottimo, non è né una soluzione SVG generica né risponde al requisito specifico specificato nella domanda. Questa risposta sembra un non sequitur. –

+0

@Laurence Gonsalves: i grafici a linee non sono l'unico tipo di diagrammi http://images.google.com/images?q=diagram – jfs

+0

La domanda ha chiesto specificamente "grafici a linee semplici" e ha avuto un esempio che ha reso abbastanza chiaro chiunque abbia letto la domanda e abbia utilizzato Graphviz, Graphviz non sarebbe stato utile a loro. Come ho detto: Graphviz è fantastico. Io lo uso per tutto il tempo. Raccomandarlo qui è come raccomandare un cacciavite a qualcuno che vuole guidare nei chiodi, comunque. –

0

ho cercato di raccogliere un elenco di librerie di creazione di grafici disponibili (il suo un lavoro in corso, in cui io continuo aggiornamento dell'elenco): http://blizzardzblogs.blogspot.com/2010/12/data-visualization-charts-and.html

Sento che protovis avrebbe fatto il lavoro per te.La sua

  • peso leggero,
  • genera svg (che può essere esportato facilmente) e
  • è javascript

Quindi più nulla da imparare :)

+0

ha davvero senso solo se si tratta di un'applicazione web ... –

Problemi correlati