Un’introduzione a Matplotlib in Python

Matplotlib è una libreria di plotting Python che gli esperti di machine learning utilizzano principalmente per creare visualizzazioni statiche e interattive.

Cos’è Matplotlib

Mathplotlib è una creazione di John D. Hunter nel 2003 che è stata rilasciata l’8 maggio 2021 e ha una versione corrente di 3.4.2.

Questa libreria è scritta principalmente in Python, mentre il resto è scritto in C obiettivo e JavaScript, rendendola compatibile con la piattaforma.

Matplotlib usa NumPy, che è un’estensione numerica di Python. La sua estensione con NumPy aggiunge la sua fattibilità come alternativa open source e lo rende una preferenza migliore rispetto a MATLAB.

Per le applicazioni della GUI Python, Matplotlib consente la stampa di grafici statici su di esso utilizzando l’API orientata agli oggetti in dotazione.

Gli utenti possono utilizzare solo poche righe scritte di codice Python per visualizzare i propri dati utilizzando diversi grafici, inclusi grafici a dispersione, istogrammi, grafici a barre, grafici a torta, grafici a linee e box plot.

Puoi usare Matplotlib per creare grafici su ambienti inclusi shell Python, notebook Jupyter,
Jupyter lab e anche utilizzando Pycharm o Anaconda e su server di applicazioni Web come Flask e Django su varie piattaforme.

Come in MATLAB, puoi controllare ampiamente i grafici in termini di caratteri, linee, colori e stili.

Dopo la breve introduzione della libreria Matplotib in Python, vediamo come possiamo configurarla nei nostri sistemi.

Configurazione dell’ambiente Matplotlib

Come qualsiasi altro pacchetto e libreria Python, puoi installare la libreria Matplotlib precompilata e i suoi pacchetti su tutti i sistemi operativi con il gestore di pacchetti pip.

Ovviamente, richiede prima l’installazione di Python e del pacchetto pip sul tuo sistema.

I seguenti comandi mostrano la versione di Python e pip per confermare se questi strumenti sono già installati.

Controlla se Python è installato

Python --version

Controlla se pip è installato

pip -V

Installa Mathplotlib

Il comando seguente installa il pacchetto Matplotlib dal Python Package Index (PyPI).

python -m pip install matplotlib

Questo comando scarica e installa i pacchetti rilevanti di Matplotlib. Dovresti vedere un messaggio di installazione riuscita al termine dell’installazione.

Per essere sicuro che Matplotlib sia stato installato correttamente, digita il comando seguente, che visualizzerà la versione di Matplotlib nel prompt dei comandi.

import matplotlib
matplotlib.__version__

Gli sviluppatori che desiderano installare il pacchetto Matplotlib non compilato devono avere accesso al compilatore corretto nel loro sistema, oltre a dipendenze, script di installazione, file di configurazione e patch.

Tuttavia, questa particolare installazione di Matplolib non compilata potrebbe essere complicata, specialmente per gli utenti principianti di Matplotlib. Pertanto, perché non utilizzare semplicemente un comando a riga singola per installare la libreria in pochi secondi?🤔

Dopo l’installazione di Matplotlib, importa il pacchetto nel tuo ambiente per accedere alle sue utilità.

Opzioni di stampa Matplotlib

Matplotlib offre numerose opzioni di stampa per visualizzare i dati. Consente inoltre la personalizzazione delle trame fornendo diversi temi, colori e opzioni della tavolozza che l’utente può utilizzare per manipolare le trame.

Queste opzioni di stampa includono:

# 1. Grafici a barre

I grafici a barre, noti come grafici a barre, sono un’opzione adatta per visualizzare un confronto quantitativo di valori all’interno della stessa categoria.

Matplotlib rappresenta questo grafico utilizzando barre rettangolari in cui le loro lunghezze e altezze rappresentano i loro valori proporzionali. Le barre possono essere orizzontali o verticali.

Matplotlib usa la sua funzione plt.bar() per creare il grafico a barre.

Inoltre, puoi utilizzare più funzioni per manipolare questa trama. Ad esempio, le funzioni plt.xlabel() e plt.ylabel() etichettano rispettivamente gli assi x e y del grafico.

La funzione plt.title() consente anche di dare un titolo alla trama, mentre la funzione plt.savefig() salva la trama. La funzione plot.show(), che è la più importante, mostra il grafico.

#2. Trame a torta

Puoi visualizzare la distribuzione proporzionale degli articoli all’interno della stessa categoria utilizzando un grafico statistico circolare che chiamiamo grafici a torta.

I grafici a torta mostrano i dati in forma percentuale. L’intera area del grafico corrisponde all’intera percentuale dei dati, mentre le singole sezioni della torta rappresentano sezioni della percentuale dei dati.

Matplotlib utilizza la funzione plt.pie() che disegna e regola i parametri del grafico a torta.
Altri parametri come l’autopct che stampa il valore del grafico a torta fino a 1 decimale sono utili per tracciare i grafici a torta.

Le organizzazioni aziendali trovano i grafici a torta utili per presentare informazioni rilevanti come operazioni, vendite o risorse.

#3. Istogramma

Un istogramma mostra la distribuzione dei dati numerici. Utilizza intervalli continui per dividere i dati in sezioni distinte.

La principale differenza tra un istogramma e un grafico a barre è il tipo di dati che gestiscono. Mentre gli istogrammi gestiscono il tipo di dati continuo, i grafici a barre gestiscono invece i dati categoriali.

Matplotlib utilizza la funzione hist() che utilizza una matrice di valori casuali o definiti per creare l’istogramma.

#4. Grafici lineari

Questi grafici sono utili per mostrare la relazione tra due valori di dati che definiamo come numerici e categoriali, su una base X e Y.

I grafici a linee sono significativi per tenere traccia della modifica dei valori dei dati nel corso del tempo.

#5. Grafici a dispersione

I grafici a dispersione evidenziano la relazione, inclusa la correlazione tra le variabili nei dati. È anche utile per identificare i valori anomali.

I grafici a dispersione utilizzano i punti per rappresentare la relazione tra le variabili di dati e il modo in cui una modifica in una variabile può influire su un’altra.

Come creare grafici in Matplotlib

Matplotlib utilizza diverse funzioni per creare grafici diversi. Utilizza anche pochissime righe di codice per creare la trama.

Di seguito vediamo come creare le diverse opzioni di stampa utilizzando diverse funzioni in Matplotlib.

# 1. Trama a bar in Matplotlib

I grafici a barre, come spiegato sopra, visualizzano le categorie di dati utilizzando barre e assi che rappresentano un confronto di categorie su un asse e valori corrispondenti delle categorie sull’altro asse.

La funzione bar() in Matplotlib accetta diversi layout di argomenti per descrivere il layout delle barre, come mostrato di seguito.

plt.bar(x, y, height, width, bottom, align)

I parametri xey rappresentano i valori delle coordinate x e y della barra nel grafico. Il parametro larghezza rappresenta la larghezza della barra, mentre il parametro altezza rappresenta l’altezza della barra.

Ad esempio, rappresentiamo il numero di cani e gatti in un canile chiamato x.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

Produzione:

Output di Bar Plot in Mathplotlib

Come nel nostro esempio sopra, puoi specificare ulteriormente il colore delle barre usando l’attributo color. Inoltre, plt.xlabel e p.ylabel denominano rispettivamente gli assi xey, mentre plt.title denomina il grafico.

#2. Come creare un grafico a torta

Matplotlib usa la funzione pie() fornita con il modulo pyplot per tracciare un grafico a torta.
La funzione rappresenta i dati da tracciare in forma di matrice.

Sintassi:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Il parametro colors imposta il colore delle fette di torta. È possibile utilizzare una matrice di valori per specificare un colore per ciascuna sezione.

Per includere ulteriormente i dettagli di ogni fetta della torta, l’argomento autopct aggiunge le percentuali numeriche che ciascuna fetta rappresenta usando la notazione di formattazione String di Python. L’esplosione come argomento accetta una matrice di valori che iniziano da 0,1 per definire la distanza della fetta dal centro della torta.

Tracciamo un grafico a torta che mostra le risorse in percentuale allocate per un particolare progetto.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

Produzione:

Output del grafico a torta in Mathplotlib

Il grafico sopra mostra un grafico a torta con quattro sezioni etichettate rispettivamente con w, x, yez. I valori di esplosione definiscono a quale distanza dal centro della torta verranno posizionate le fette.

Dal grafico sopra, x è più lontano perché il suo valore di esplosione è maggiore del resto. L’attributo shadow aggiunge un’ombra al grafico a torta come nell’immagine mentre autopct imposta la percentuale relativa all’intera torta rappresentata da ogni fetta.

#3. Creazione di un grafico dell’istogramma

Con un istogramma, utilizzeremo una serie di intervalli per rappresentare l’intervallo dei valori indicati sull’asse x.
L’asse y, d’altra parte, rappresenterà le informazioni sulla frequenza.

A differenza degli altri grafici, la stampa di un istogramma in Matplotlib richiede alcuni passaggi predefiniti che è necessario seguire per creare il grafico.

Questi passaggi includono:

  • Crea un contenitore di intervalli dall’insieme di valori di dati che hai. Puoi usare la funzione np.random.normal() che può generare valori casuali per te.
  • Utilizzando una serie di intervalli, distribuire i valori in un intervallo di valori.
  • Contare i valori che rientrano in ogni particolare intervallo.
  • Ora usa la funzione matplotlib.pyplot.hist() per creare l’istogramma.
  • La funzione hist() accetta diversi parametri, tra cui:

    x – Rappresenta la sequenza dell’array

    bins – Questo è un parametro facoltativo che rappresenta intervalli non sovrapposti di variabili che possono contenere numeri interi o una sequenza String.

    intervallo: definisce l’intervallo superiore e inferiore dei contenitori

    align – Questo parametro controlla l’allineamento dell’istogramma. Sia a sinistra, a destra o al centro.

    color – Definisce il colore delle barre.

    rwidth – Imposta la larghezza relativa delle barre nell’istogramma a quella del cestino.

    log – il parametro log definisce una scala logaritmica sull’asse di un istogramma.

    L’esempio seguente traccia un istogramma con i valori definiti.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    Produzione:

    Output del grafico dell’istogramma in Mathplotlib

    #4. Grafico a linee in Matplotlib

    Matplotlib usa la sua sotto-libreria chiamata pyplot , che include varie funzioni che aiutano con la sua implementazione.

    Utilizziamo la funzione plot(), che è una funzione generica fornita con pyplot per tracciare i grafici a linee e diversi altri tipi di grafici a linee, inclusi i grafici curvi e i grafici a più linee. La creazione di questi diversi tipi di grafici dipende dai valori passati all’asse y.

    Durante la stampa, importa matplotlib.pyplot e Numpy, che disegnano i grafici. Il metodo plot(x,y) crea il grafico a linee passando valori casuali agli argomenti xey.

    Inoltre, puoi passare una variabile etichetta che etichetta il grafico. La funzione title denomina ulteriormente il titolo della trama, mentre le funzioni xlabel e ylabel denominano gli assi. Infine, la funzione show() mostra il grafico.

    Per esempio:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    Risultato:

    Output del grafico a linee in Mathplotlib

    L’attributo np.linspace restituisce sul grafico un insieme di numeri equidistanti su un intervallo particolare per i valori x. Questo creerà una matrice di 10 valori nell’intervallo 0 e 5. I valori y vengono creati dall’equazione che utilizza i valori corrispondenti di x.

    Creazione di grafici a dispersione

    Matplotlib usa il metodo scatter() per creare questo grafico.
    Questo metodo accetta i seguenti parametri.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    I parametri x_axis_data e y_axis_data non possono essere lasciati vuoti, a differenza del resto dei parametri che possono essere facoltativi e avere None come valore. Mentre l’argomento x_axis_data definisce una matrice di dati per l’asse x, y_axis_data imposta una matrice di dati per l’asse y.

    Un esempio di grafico a dispersione in matplotlib

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    Il suo output piacerà:

    Output del grafico a dispersione in Mathplotlib

    Che cos’è subplot() in matplotlib

    La funzione subplot() può essere utilizzata per disegnare più grafici su una singola figura Matplotlib. Ciò consente la visualizzazione e il confronto dei grafici multipli all’interno della figura.

    Questa funzione restituirà una tupla con tre argomenti; righe e colonne rispettivamente come primo e secondo argomento e indice del grafico corrente come terzo argomento.

    Le righe e le colonne definiscono chiaramente il layout di Matplotlib.

    Pertanto, plt.subplot(2, 1, 1), ad esempio, traccierà una figura Matplotlib con due righe e una colonna e questo grafico sarà il primo grafico.

    D’altra parte, plt.subplot(2, 1, 2) mostra un secondo grafico con due righe e una colonna.

    Tracciare questi due grafici li creerà uno sopra l’altro, come nell’esempio seguente.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    L’output dell’esempio sopra sarà simile all’immagine qui sotto.

    Utilizzando un esempio diverso, utilizziamo la funzione di sottotrama per tracciare due figure con una riga e due colonne. Questo visualizzerà i grafici affiancati.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    L’esempio sopra mostrerà il seguente risultato.

    Bene, è stato interessante in modo interattivo, non credi?😃

    Parole finali

    Matplotlib è una libreria di visualizzazione famosa in Python. La sua interattività e la facilità d’uso anche per i principianti lo rendono uno strumento ancora migliore da utilizzare per la stampa in Python.

    Questo articolo ha trattato esempi dei vari grafici che le funzioni fornite con Matplotlib possono creare, inclusi grafici a torta, grafici a barre, istogrammi e grafici a dispersione.

    Naturalmente, Python ha molte altre librerie che gli esperti di machine learning e i data scientist possono utilizzare per creare visualizzazioni.

    Puoi esplorare più grafici che puoi creare con Matplotlib e quali funzioni utilizzerai per creare il grafico.

    Buona trama!📉📊