In questa micro-lezione daremo uno sguardo a 6 comandi per curare gli aspetti chiave dei nostri grafici costruiti con Matplotib.
Il programma della micro-lezione
Le librerie e il dataframe
Prima di cominciare, importiamo le librerie di cui avremo bisogno:
import pandas as pd
import numpy as np
import matplotlib.pyplot as pltSe non hai un set di dati su cui stai giร lavorando, possiamo creare un dataframe a fini dimostrativi:
data = {
'Anno': [2018, 2019, 2020, 2021, 2022],
'Prodotto A': [30, 35, 40, 45, 50],
'Prodotto B': [20, 25, 30, 35, 40],
'Prodotto C': [10, 15, 20, 25, 30]
}
df = pd.DataFrame(data)Ecco lโaspetto del nostro dataframe:

Iniziamo da un grafico a colonne
Per prima cosa, impostiamo la colonna โAnnoโ come indice del dataframe:
df.set_index('Anno', inplace=True)Costruiamo poi il grafico a colonne:
df.plot.bar()Ecco qui il nostro grafico:

Cambiare il tema
La libreria Matplotlib dispone di temi giร pronti da usare. Per farlo, occorre scegliere il tema desiderato prima di creare il grafico.
Ecco qui due esempi:
# Tema scuro
plt.style.use('dark_background')
# Team classico
plt.style.use('classic')Ed ecco qui i risultati:

Tema scuro

Tema classico
Per visualizzare una lista di tutti i temi disponibili su Matplotlib, puoi eseguire il comando:
plt.style.availableAggiungere e personalizzare il titolo
Aggiungiamo un titolo al nostro grafico e impostiamone la grandezza:
plt.title(
'Vendite dei prodotti nel tempo',
fontsize=12
)Aggiungere i nomi degli assi
Adesso immaginiamo di voler dare un nome allโasse X e allโasse Y. Facendolo, possiamo anche impostarne la dimensione. Ecco come fare:
plt.xlabel(
'Anno',
fontsize=10
)
plt.ylabel(
'Unitร vendute',
fontsize=10
)Cambiare i colori
I colori di default di Matplotlib potrebbero non essere il massimo. Ecco come fare per personalizzarli:
# Impostiamo i colori
colors = [
'#3772ff',
'#5ce9a5',
'#df2935'
]
# Applichiamoli al grafico
df.plot.bar(color=colors)Ed ecco qui il risultato, includendo anche le modifiche apportate nei passaggi precedenti:

Ruotare le etichette dellโasse X
Avrai notato che gli anni sullโasse delle X non sono scritti in orizzontale. Per farlo, o per modificarne la rotazione in un grafico costruito su Matplotlib, possiamo usare:
plt.xticks(rotation=0)Personalizzare la legenda
Per il momento il nostro grafico ha una legenda che Matplotlib visualizza in maniera abbastanza strana: รจ situata allโinterno dellโaera del grafico.
Per cambiare questo aspetto e personalizzare altri parametri della legenda, possiamo scrivere il codice seguente:
plt.legend(
title = 'Prodotti',
title_fontsize = '10',
fontsize = '8',
bbox_to_anchor = (1, 0.91)
)Vediamo insieme quello che fa ogni parametro di plt.legend() :
title = 'Prodotti'imposta il titolo del box della legenda.title_fontsize = '10'efontsize = '8'impostano la grandezza del titolo e dei valori della legenda.bbox_to_anchor = (1, 0.91)impostano la posizione della legenda e la ancorano ad un punto del grafico. Nel mio caso i valori(1, 0.91)la allineano al suo margine superiore.
Ecco qui come apparirร il nostro grafico:

Aggiungere una griglia
Ipotizziamo di voler aggiungere una griglia al nostro grafico. Data la natura dei nostri dati, ha senso impostarne una che sia applicata soltanto allโasse Y. Per farlo, possiamo usare questo codice:
plt.grid(
True,
linestyle='--',
alpha=0.7,
axis='y'
)Vediamo nel dettaglio il funzionamento di ogni parametro di plt.grid() :
Truefa sรฌ che la griglia sia visibile.linestyle='--'ne imposta lo stile. In questo caso sarร una linea tratteggiata.alpha=0.7specifica la trasparenza. Il range va da 0.0 (completamente trasparente) a 1 (solida).axis='y'limita la griglia ad un solo asse, in questo caso quello Y. Omettendo questo parametro si avrร una griglia su entrambi gli assi.
Il risultato finale
Ecco qui il nostro grafico finale:

Ed ecco qui il codice completo:
# Librerie
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#Variabili
colors = ['#3772ff', '#5ce9a5', '#df2935']
# dataframe
data = {
'Anno': [2018, 2019, 2020, 2021, 2022],
'Prodotto A':[30, 35, 40, 45, 50],
'Prodotto B':[20, 25, 30, 35, 40],
'Prodotto C':[10, 15, 20, 25, 30]
}
df = pd.DataFrame(data)
df.set_index('Anno', inplace=True)
# Grafico
df.plot.bar(color=colors)
plt.xlabel(
'Anno',
fontsize=10
)
plt.ylabel(
'Unitร vendute',
fontsize=10
)
plt.title(
'Vendite dei prodotti nel tempo',
fontsize=12
)
plt.xticks(rotation=0)
plt.legend(
title = 'Prodotti',
title_fontsize = '10',
fontsize = '8',
loc = 'center left',
bbox_to_anchor = (1, 0.91)
)
plt.grid(
True,
linestyle='--',
alpha=0.7,
axis='y'
)
plt.show()Alla prossima micro-lezione ๐
