Python - Crea PDF con grafica, parte 2

Sommario
Nella prima parte del tutorial descriviamo i punti fondamentali del perché Pitone È una buona opzione per costruire elementi grafici da dati di testo, potremmo anche vedere un po' come gestire il modulo ReportLab per generare un semplice PDF con testo di prova disegnato.
Preparazione
Per realizzare il nostro progetto prenderemo alcuni dati storici sulla posizione del sole, li prendiamo dal sito web della SEC o Space Environment Center, è originariamente in un file .txt, tuttavia per accelerare il nostro sviluppo stiamo andando per includerlo direttamente nel nostro programma in una tupla come segue:
 data = [# Anno Mese Previsione Alto Basso (2004, 12, 34,2, 35,2, 33,2), (2005, 1, 31,5, 34,5, 28,5), # Continua con più dati] 

È importante ricordare che con questi dati che andremo ad alimentare genereremo le linee del nostro grafico.
Utilizzo di polilinee
Prima di continuare dobbiamo sapere come disegnare le linee, per questo useremo polilinee che è solo uno Classe ReportLab che ci permette di generare linee dalle coordinate, queste coordinate vengono ricevute come argomento. Vediamo di seguito come generare un semplice grafico.
Con la linea PolyLine ([(0, 0), (10, 0), (10, 10), (0, 10)]) possiamo generare un grafico che vediamo nell'immagine seguente:

Prima implementazione
Poiché sappiamo con quali strumenti lavoreremo, è tempo di creare la nostra prima versione del programma.
Per prima cosa andremo a vedere il codice proposto, poi spiegheremo come funziona:
 from reportlab.lib import colors from reportlab.graphics.shapes import * from reportlab.graphics import renderPDF data = [(2005, 8, 113.2, 114.2, 112.2), (2005, 9, 112,8, 115.8, 109.8), (2005, 10, 111,0, 116,0, 106,0), (2005, 11, 109,8, 116,8, 102,8), (2005, 12, 107,3, 115,3, 99,3), (2006, 1, 105,2, 114,2, 96,2), (2006, 2, 104,1, 114,1, 94.1), (2006, 3, 99,9, 110,9, 88,9), (2006, 4, 94,8, 106,8, 82,8), (2006, 5, 91,2, 104,2, 78,2),] disegno = disegno (200, 150) pred = [riga [2] -40 per riga di dati] high = [riga [3] -40 per riga di dati] low = [riga [4] -40 per riga di dati] times = [200 * ( (riga [0] + riga [1] /12.0) - 2005) -110 per riga nei dati] drawing.add (PolyLine (zip (times, pred), strokeColor = colors.blue)) drawing.add (PolyLine (zip) (times, high), strokeColor = colors.red)) drawing.add (PolyLine (zip (times, low), strokeColor = colors.green)) drawing.add (String (65, 115, 'Sunspots', fontSize = 18 , fillColor = colors.red)) renderPDF.drawToFile (disegno, 'report1.pdf', 'Macchie solari') 

Nel codice iniziamo importando i pacchetti necessari, includiamo il classe di colori che ci permette di disegnare i grafici a colori, poi definiamo i nostri dati, questa volta abbiamo incluso molti più dati per fare un grafico più completo.
Istanziamo il Lezione di disegno e poi prepariamo le tre variabili che andremo a tradurre.
Finalmente con lui aggiungi metodo stiamo incorporando le variabili definite con i dati già preparati, una volta che abbiamo le 3 sezioni costruiamo il PDF con il metodo disegna su file e alla fine dovremmo avere qualcosa di molto simile a quanto segue:

Come possiamo vedere, abbiamo già tracciato le linee corrispondenti ai dati incorporati, tuttavia dobbiamo ancora dare al report un po' più di significato, per questo dobbiamo incorporare delle linee guida, tuttavia una volta che sappiamo come funziona possiamo lasciare il resto a loro.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave