Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Grafici con Pandas

Impariamo a creare grafici per descrivere i nostri dati, sfruttando i metodi offerti dal modulo Pandas di Python.
Impariamo a creare grafici per descrivere i nostri dati, sfruttando i metodi offerti dal modulo Pandas di Python.
Link copiato negli appunti

Sinora abbiamo conosciuto la ricchezza di funzionalità dei DataFrame Pandas e di quanto il loro legame
sia stretto con i principali ambiente per la data visualization ovvero Matplotlib e
Seaborn. Ogni volta che avremo dati in una struttura Pandas e ci sarà necessario doverli visualizzare (casistiche assolutamente comuni per un data scientist) potremo passarli ad
oggetti Matplotlib e Seaborn ed ottenere visualizzazioni con il massimo del dettaglio nonchè una perfetta personalizzazione. Eppure è importante sapere che Pandas stesso mette a disposizione
tutto il necessario per visualizzare i propri dati. In pratica, ogni DataFrame espone delle funzionalità per realizzare grafici e le porte di tutto questo possono essere dischiuse con il metodo
plot.

Prepariamo i dati

Utilizzeremo per questo esempio un DataFrame generato casualmente e popolato da numeri interi, ciò ci permetterà di essere pronti velocemente al lavoro senza dover caricare alcun dataset esterno.
Ecco il comando necessario:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,30,size=(30, 4)), columns=list('ABCD'))

Abbiamo fatto uso anche delle funzionalità di NumPy per ottenere quattro colonne ognuna di trenta numeri random denominate
rispettivamente "A", "B", "C" e "D". Con il metodo head possiamo avere uno scorcio sulle prime righe:

A   B   C   D
0  29   2  17  11
1  17  10   3  12
2   8   6   4   6
3   2  10   4   5
4   4  28   7  11

Ora siamo pronti per creare i nostri primi grafici con Pandas. Ricordiamo solo che essendo generati casualmente tali dati, ogni sperimentazione del codice offrirà risultati differenti.

Grafici lineari

Come di consueto, iniziamo parlando di come rappresentare grafici a linee, casistica assolutamente comune. Con Pandas inizieremo sempre invocando il
metodo plot sul DataFrame
. Ad esempio:

df.B.plot()

genera:

Figura 1. Primo grafico con Pandas (click per ingrandire)Primo grafico con Pandas

Come si vede, con una rapida catena di riferimenti abbiamo detto che nel DataFrame df cerchiamo la colonna B e di questa vogliamo il grafico lineare (metodo plot). Avremmo
potuto anche richiedere una rappresentazione di più colonne insieme con df[['A','B']].plot(). In pratica, sfruttiamo l'indirizzamento a colonne da sempre disponibile in Pandas
ma non per stampare i dati ma per averne un plotting a video.

Tra gli argomenti che possiamo passare al metodo plot c'è figsize che permette di specificare il ridimensionamento che vogliamo applicare al grafico fornito:
ad esempio, figsize=(15,15).

Il metodo plot è un tool generico in grado di fornire molti grafici diversi che potranno essere selezionati con l'argomento kind.

Altri tipi di grafici

Se volessimo avere uno scatter, grafico a punti molto comune, potremmo utilizzare:

df.plot(x="A", y="B", kind="scatter")

Con kind="scatter" indichiamo il tipo di grafico mentre con x e y specifichiamo quale delle colonne farà da ascissa e quale da ordinata. Ecco
il risultato:

Figura 2. Scatter con Pandas (click per ingrandire)Scatter con Pandas

Il parametro kind offre il vantaggio di passare sotto forma di stringa il tipo di grafico che ci interessa avere e ciò, ai fini della configurabilità dei nostri script, è utile per
un "settaggio" al volo del suo valore. Tuttavia, si può specificare direttamente il tipo di grafico che si desidera passando per i metodi offerti dall'oggetto plot
disponibile in ogni DataFrame. Ad esempio, lo scatter precedente si sarebbe potuto ottenere con: df.plot.scatter(x="A", y="B").

Si potrà avere anche un istogramma per la distribuzione statistica con df.B.plot(kind="hist") anche questo basato sui dati della colonna B. Otteniamo:

Figura 3. Istogramma (click per ingrandire)Istogramma

Per avere un grafico a barre invece il valore che dovrà essere passato al parametro kind è bar pertanto df[['A','B']].plot(kind="bar")
fornirà:

igura 4. Grafico a barre (click per ingrandire)Grafico a barre

Si noti che nella selezione abbiamo indicato due colonne e Pandas ha tenuto conto di entrambe rappresentando per ogni porzione di ascissa una doppia barra con colori distinti. Le barre
possono anche essere disegnate orizzontalmente utilizzando df[['A','B']].plot(kind="barh") o df[['A','B']].plot.barh(). Ultimo tipo di rappresentazione che
mostriamo è un modo molto rapido per osservare la densità dei valori: df.plot.kde(). Ecco quanto produce:

Figura 5. Densità delle distribuzioni (click per ingrandire)Densità delle distribuzioni

In conclusione, possiamo dire che la visualizzazione diretta tramite Pandas offre il grande vantaggio di risultare pratica e molto comoda per le esplorazioni dei dati, senza nulla togliere
però alle svariate possibilità che mettono a disposizione Matplotlib e Seaborn.

Ti consigliamo anche