Permettimi di iniziare mostrandoti il seguente grafico:
Sembra familiare, vero? Questo è chiamato un grafico a barre. Normalmente li disegniamo usando diverse applicazioni come Microsoft Excel e Microsoft Word.
Se vogliamo avere più controllo sul processo di creazione del grafico, la creazione di tali grafici sarebbe la scelta migliore.
In questo tutorial ti mostrerò come possiamo creare grafici a barre usando Python. Pronto?
Se ti interessa approfondire Python e imparare come utilizzare la potenza di Python per gestire i dati, perché non dare un'occhiata a questi due corsi:
Per svolgere il compito di disegnare un grafico a barre, saranno necessari principalmente due moduli: il modulo Immagine e il modulo ImageDraw, entrambi importati dalla libreria Python Imaging (PIL). Il Immagine
il modulo verrà utilizzato per caricare un'immagine, mentre il ImageDraw
il modulo verrà utilizzato per creare la grafica 2D (ad esempio disegnare una linea).
Menzionando il PIL, lascia che ti mostri come possiamo installarlo. Ma ti mostrerò come installare Pillow. La ragione di ciò è la versione più recente per PIL, PIL 1.1.7, è stata rilasciata nel 2009 e supporta solo Python 1.5.2-2.7. Non ha quindi il supporto per Python 3.X, e temo che il suo sviluppo sia stato interrotto da quando l'ultimo impegno per il progetto PIL è stato nel 2011.
Il guanciale viene in soccorso poiché ha biforcato il repository PIL e aggiunto il supporto per Python 3.X. Quindi userò il Cuscino per i lettori che usano Python 3.X. Ma non fa male lavorare con Pillow se stai usando versioni precedenti di Python.
I passaggi menzionati in questa sezione sull'installazione di Pillow sono per utenti Mac OS X, dal momento che sto attualmente scrivendo questo tutorial su un sistema Mac OS X El Capitan, ma puoi seguire le istruzioni nella documentazione per altri sistemi operativi.
Un modo semplice per installare Pillow sul tuo Mac è tramite pip, che può essere installato digitando il seguente semplice comando sul tuo terminale:
$ sudo easy_install pip
Cuscino a questo punto può essere semplicemente installato digitando:
$ sudo pip installare cuscino
Passiamo ora attraverso i blocchi di costruzione del programma passo dopo passo. La prima cosa di cui abbiamo bisogno è un'immagine vuota su cui disegneremo il nostro grafico a barre. Puoi scaricare l'immagine vuota.
Leggiamo ora questa immagine vuota e disegniamo. Possiamo farlo come segue:
da PIL import Image, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img)
Dal momento che vogliamo disegnare un grafico a barre, abbiamo bisogno di alcuni dati. Per questo, possiamo usare le liste. Pertanto, i nostri dati (elenco) possono apparire come segue:
data = ['4', '5', '87', '1', '44', '83', '93', '2', '54', '84', '100', '64' ]
A questo punto, tutto ciò che dobbiamo fare è disegnare il grafico a barre. Tratteremo le barre che vediamo sul grafico come linee. Quindi faremo uso del linea()
metodo del ImageDraw
modulo.
Ti mostrerò il codice che eseguirà il compito di disegnare un grafico a barre, e lo spiegherò in seguito:
per i in data: x = x + 30 y = 200 - int (i) draw_img.line ((x, 200, x, y), width = 10, fill = (255,0,0,255))
Come puoi vedere, scorriamo il nostro elenco e disegniamo un grafico a barre utilizzando i dati nell'elenco. x = x + 30
ci fornisce lo spazio richiesto tra ogni punto di dati nella lista sull'asse x. Prima di procedere, voglio ricordarti che il (0,0)
punto sull'immagine è il in alto a sinistra punto dell'asse. Quindi sarebbe come disegnare le linee capovolte nel modo normale a cui siamo abituati quando segniamo le coordinate del punto su un grafico.
Se saltiamo sull'ultima riga della precedente porzione di script, possiamo leggere questa parte draw_img.line ((x, 200, x, y)
come segue: traccia una linea dal punto (X, 200)
al punto (X, y)
. Quindi, se iniziamo con il primo punto dati 4
, la linea verrebbe disegnata da (34.200)
a (34.196)
. Quindi, quando ti mostro l'output tra un po ', l'asse x apparirà come se fosse quello a cui normalmente siamo abituati (partendo dal basso a sinistra per il punto (0,0)
). Il trucco qui era da usare y = 200
. Come vedrai, avremo sempre una linea disegnata dove y = 200
per tutti i punti di dati, e questo ci darà l'impressione del modo in cui siamo abituati a disegnare punti su un grafico durante la visualizzazione dei nostri risultati.
Il larghezza
rappresenta la larghezza (spessore) della linea e riempimento = (255,0,0,255)
rappresenta il colore della linea. Questo è il RGBA
colore (un'estensione del colore RGB con un canale alfa che rappresenta l'opacità).
Infine, possiamo vedere l'immagine usando la frase: img.show ()
.
Ora che abbiamo coperto gli elementi costitutivi del nostro programma, mettiamo insieme tutto e vediamo come appare il nostro script:
da PIL import Image, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img) data = ['4', '5', '87', '1', '44', ' 83 ',' 93 ',' 2 ',' 54 ',' 84 ',' 100 ',' 64 '] x = 0 per i nei dati: x = x + 30 y = 200 - int (i) draw_img. riga ((x, 200, x, y), larghezza = 10, riempimento = (255,0,0,255)) img.show ()
Ora arriva la parte interessante, il risultato dello script sopra. Se esegui il programma, dovresti avere qualcosa di simile al seguente:
Ho ritagliato la parte superiore dell'immagine in questa istantanea; dovrebbe apparire più grande nell'output originale.
Come abbiamo visto da questo tutorial, per ottenere più controllo su alcune attività regolari come disegnare un grafico per alcuni dati, usare un linguaggio di programmazione (cioè Python) sarebbe la strada da percorrere.
Tuttavia, non è sempre necessario eseguire tali compiti da zero; possiamo invece beneficiare di librerie definite dall'utente come Pillow nel nostro tutorial. L'utilizzo di una tale libreria ha reso facile per noi disegnare il grafico a barre, e l'uso di Python ci ha dato il controllo e la flessibilità di usare alcuni trucchi per produrre il grafico nel modo in cui volevamo.