
Oggi impareremo a sfruttare Python per costruire grafici di vario tipo e utilizzeremo la libreria MatPlotLib per cercare di renderli migliori
Una immagine vale più di mille parole, si dice. Spesso infatti una foto o un grafico sono in grado di riunire tutte le informazioni più importanti in un unico colpo d’occhio.
Ma la programmazizone di un grafico appare spesso complessa all’utente medio. Fortunatamente in suo aiuto possiamo chiamare diverse librerie specializzate nella rappresentazione delle immagini, lasciando al programmatore la sola raccolta delle informazioni.
Troppo semplice? In realtà no. Vedremo come sia lineare creare grafici e interpolazioni in scale e coordinate diverse, e forniremo alcuni semplici esempi, che i nostri lettori potraanno facilmente estendere.
Grafici python matplotlib sono in questo caso le parole chiave.
Si parte!
Un classico grafico a barre
Di seguito, un esempio che mostra come controllare il colore delle barre e le voci della legenda utilizzando i parametri colore ed etichetta della barra. Si noti che le etichette precedute da un trattino basso non verranno visualizzate nella legenda.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import matplotlib.pyplot as plt fig, ax = plt.subplots() fruits = ['apple', 'blueberry', 'cherry', 'orange'] counts = [40, 100, 30, 55] bar_labels = ['red', 'blue', '_red', 'orange'] bar_colors = ['tab:red', 'tab:blue', 'tab:red', 'tab:orange'] # bar_labels = ['red', 'blue', 'green', 'orange'] # bar_colors = ['tab:red', 'tab:blue', 'tab:green', 'tab:orange'] ax.bar(fruits, counts, label=bar_labels, color=bar_colors) ax.set_ylabel('fruit supply') ax.set_title('Fruit supply by kind and color') ax.legend(title='Fruit color') plt.show() |
Risultato:

Funzionamento
Viene innanzi tutto imporato il sottomodulo pyplot da matplotlib.Il modulo dovrà ovviamente essere installato nell’ambiente Python (apt, pip o altro). Vengono quindi definiti un oggetto figura ed una lista di subplots, che utilizzeranno i dati forniti dall’utente. Le liste successive conterranno le informazioni da stampare (elementi, numero associato a ciascun elemento, le etichette per il colore e le associazioni tra elemento e colore. Le due righe commentate mostrano una configurazione alternativa (a 4 colori) del grafico, e aiuteranno il programmatore che desideri sperimentare.
A questo punto le liste vengono assegnate all’oggetto che contiene i sottografici: vengono aggiunti i9 nomi, le quantità e, come parametri chiave, le etichette delle barre ed i relativi colori. Mancano solo le etichette degli assi e della box per la legenda. Il metodo .show() riprodurrà il grafico.
Coordinate polari
Vediamo ora come riprodurre il grafico in coordinate polari rappresentato come immagine iniziale:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import matplotlib.pyplot as plt import numpy as np # Fixing random state for reproducibility np.random.seed(19680801) # Compute pie slices N = 20 theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False) radii = 10 * np.random.rand(N) width = np.pi / 4 * np.random.rand(N) colors = plt.cm.viridis(radii / 10.) ax = plt.subplot(projection='polar') ax.bar(theta, radii, width=width, bottom=0.0, color=colors, alpha=0.5) plt.show() |
Risultato:
Funzionamento
Nel secondo caso viene anche importata la libreria numpy per le operazioni matematiche complesse.Viene quindi definito un random seed per garantire la riproducibilità dei valori del grafico. Vengono poi definite le “fette” (slices) del grafico: il loro numero, l’estensione angolare in radianti, il raggio, l’ampiezza di ciascun settore ed il colore (tutti dipendenti dal valore random appena calcolato).E’ evidente che fornendo opportuni valori anziché affidarsi al generatore di numeri casuali, è possibile avere un grafico in coordinate polari forse meno appariscente, ma sicuramente più significativo. O magari trasformarlo in un generico grafifo a torta…
Infine, definiamo il tipo di grafico che desideriamo ottenere (in coordinate polari anziché il valore standard), applichiamo all’oggetto ax il metodo bar() (come abbiamo fatto nel precedente grafico, ma con i nuovi valori calcolati) e chiamiamo il metodo .show().
…e per finire…
…presentiamo ora un grafico decisamente complesso, ma che consente di avere un’idea della flessibilità e della potenza della libreria.
SI tratta in pratica di un rapporto che contiene valori, celle “à la Excel“, grafici stacked composti, sfumatira dei colori, etichette… Ma come di9cevamo all’inizio, una immagine vale più di mille parole:

Per chi fosse interessato, è disponibile il sorgente Python e il jupyter notebook del grafico.
Considerazioni finali
Grafici Python MatPlotLib: è semplice accedere alla notevole libreria di MatPlotLib per confezionare grafici ad hoc, e per rappresentare i propri dati nel modo più “parlante” possibile.
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano
- Raspberry PI 5
- Raspberry PI 400
- Raspberry PI Pico
- Programmiamo il Pico
Funzionamento