Team I.A. Italia

6 min

Visualizzare i dati con lo ScatterPlot o grafico a dispersione con Python e MatplotLib

Aggiornato il: apr 16

Prerequisiti :

Scattrplot

Prima di iniziare la giuda pratica per creare uno Scatterplot partendo da un dataset vediamo quando è utile o necessario utilizzare il grafico a dispersione.

Cosa è lo Satterplot?

Il grafico a dispersione rappresenta su due assi (x & y), mediante dei punti, coppie di dati numerici, con una variabile di coordinate ( x, y ).

Quando è consigliato usarlo?

  1. Quando bisogna cercare quale variabile indipendente influenzi maggiormente la variabile dipendente

  2. Quando la variabile dipendente può avere più valori per ogni valore della variabile indipendente

  3. Quando si cerca di determinare se le due variabili sono correlate.

  4. In alcuni casi vine anche usato per la visualizzazione di cluster.

Installiamo le librerie

Per installare le librerie necessarie per la rappresentazione apriamo il terminale e digitiamo il seguenti comandi:

pip install matplotlib
 
pip3 install matplotlib #per python3
 

 
pip install numpy
 
pip3 install numpy #per python3
 

 
pip install pandas
 
pip3 install pandas #per python3

Giuda alla visualizzazione dello ScatterPlot da un file Excel

Creiamo un nuovo file e importiamo le librerie che ci serviranno.

Per questo esempio utilizzeremo questo file excel


 
import matplotlib.pyplot as plt
 
import pandas as pd


 
Creiamo adesso con pandas il nostro dataset in memoria.


 

 

 
#carichiamo in Ram i dati contenuti nel file excel
 
dataset = pd.read_excel (r'mq_prezzo_appartamento.xlsx')
 

 
#stampiamo il nostro dataset
 
print(dataset)
 

 
Output:
 

 

 
mq prezzo 0 50 37500 1 55 45375 2 60 54000 3 65 63375 4 70 73500 5 75 84375 6 80 96000 7 85 108375 8 90 121500 9 95 135375 10 100 150000 11 105 165375 12 110 181500 13 115 198375 14 120 216000 15 125 234375 16 130 253500 17 135 273375 18 140 294000 19 145 315375 20 150 337500 21 155 360375 22 160 384000 23 165 408375 24 170 433500 25 175 459375 26 180 486000 27 185 513375 28 190 541500 29 195 570375 30 200 600000 31 205 630375 32 210 661500 33 215 693375 34 220 726000 35 225 759375 36 230 793500 37 235 828375 38 240 864000


 
Creiamo due liste conteneti rispettivamente i valori X (metri quadrati) e Y (prezzo appartamento)


 
mq = dataset['mq']
 
prezzo = dataset['prezzo']
 

 
#stampiamo le nostre liste
 
print(mq,prezzo)
 

 
Output:
 

 
0 50 1 55 2 60 3 65 4 70 5 75 6 80 7 85 8 90 9 95 10 100 11 105 12 110 13 115 14 120 15 125 16 130 17 135 18 140 19 145 20 150 21 155 22 160 23 165 24 170 25 175 26 180 27 185 28 190 29 195 30 200 31 205 32 210 33 215 34 220 35 225 36 230 37 235 38 240 Name: mq, dtype: int64 0 37500 1 45375 2 54000 3 63375 4 73500 5 84375 6 96000 7 108375 8 121500 9 135375 10 150000 11 165375 12 181500 13 198375 14 216000 15 234375 16 253500 17 273375 18 294000 19 315375 20 337500 21 360375 22 384000 23 408375 24 433500 25 459375 26 486000 27 513375 28 541500 29 570375 30 600000 31 630375 32 661500 33 693375 34 726000 35 759375 36 793500 37 828375 38 864000 Name: prezzo, dtype: int64


 
Visti così non si capisce poco e niente, ma ora vedremo come rappresentarli con un grafico a dispesione
 
La libreria MatplotLib offre anche la possibilità di personalizzare i nostri grafici.


 
#definire il titolo del grafico
 
plt.title("Rapporto dimensione / prezzo degli appartamenti")
 

 
#definire il testo dell'asse x
 
plt.xlabel("Dimensione in m^2 dell'appartamento")
 

 
#definire il testo dell'asse y
 
plt.ylabel("prezzo in € dell'appartamento")
 

 
#definire lo sfondo a griglia
 
plt.grid()
 

 
#definire le dimensioni de grafico
 
plt.rcParams['figure.figsize'] = [15,10] #altezza,lunghezza
 

 
#la funzione per creare il grafico è molto semplice
 
plt.scatter(mq,prezzo, label="Rapporto appartamenti", marker="s")
 

 
#definire la leggenda del grafico
 
plt.legend()
 

 
#salviamo il grafico
 
plt.savefig("scatterPlot_rapporto_mq_prezzo_appartamenti.png")
 

 
#mostriamo il grafico
 
plt.show()
 

 
output:

scatterplot

Per scaricare gratuitamente devi prima registrati/accede al portale.

Scorri in fondo alla pagina per registrati o accedere


Giuda alla visualizzazione dello scatterPlot da dati generati

Creiamo un nuovo file e importiamo le librerie che ci serviranno.


 
import matplotlib.pyplot as plt
 
import numpy as np


 
Creiamo adesso con numpy generiamo due liste di dati


 
# utilizzando la funzione np.random.randint(50,150, size=50)+10 andiamo a creare una lista
 
# contenente 50 (size) numeri casuali interi da 50 a 150, i quali indicheranno la metratura quadrata
 
metriquadrati_appartamento = np.random.randint(50,150, size=50)+10
 

 
# utilizzando la funzione np.power(metriquadrati_appartamento, 2)*9 andiamo a creare una lista
 
# contenente 50 numeri generati elevando al quadrato e moltiplicato per 15 la metratura quadrata
 
prezzi_appartamento = np.power(metriquadrati_appartamento, 2)*15
 

 
print(metriquadrati_appartamento,prezzi_appartamento)
 

 

 
output:
 
[157 147 153 122 142 150 105 62 73 120 133 159 123 124 102 92 83 136 90 154 119 141 111 126 82 75 159 95 134 113 145 98 148 71 137 158 151 132 61 101 96 158 125 157 105 65 62 129 104 97] [369735 324135 351135 223260 302460 337500 165375 57660 79935 216000 265335 379215 226935 230640 156060 126960 103335 277440 121500 355740 212415 298215 184815 238140 100860 84375 379215 135375 269340 191535 315375 144060 328560 75615 281535 374460 342015 261360 55815 153015 138240 374460 234375 369735 165375 63375 57660 249615 162240 141135]


 
Visti così non si capisce poco e niente, ma ora vedremo come rappresentarli con un grafico a dispersione
 
La libreria MatplotLib offre anche la possibilità di personalizzare i nostri grafici.


 
#definire il titolo del grafico
 
plt.title("Rapporto dimensione / prezzo degli appartamenti")
 

 
#definire il testo dell'asse x
 
plt.xlabel("Dimensione in m^2 dell'appartamento")
 

 
#definire il testo dell'asse y
 
plt.ylabel("prezzo in € dell'appartamento")
 

 
#definire lo sfondo a griglia
 
plt.grid()
 

 
#definire le dimensioni de grafico
 
plt.rcParams['figure.figsize'] = [15,10] #altezza,lunghezza
 

 
#la funzione per creare il grafico è molto semplice
 
plt.scatter(metriquadrati_appartamento,prezzi_appartamento, label="Rapporto appartamenti", marker="s")
 

 
#definire la leggenda del grafico
 
plt.legend()
 

 
#salviamo il grafico
 
plt.savefig("scatterPlot_rapporto_mq_prezzo_appartamenti.png")
 

 
#mostriamo il grafico
 
plt.show()

output:

Scatterplot

Per scaricare gratuitamente devi prima registrati/accede al portale.

Scorri in fondo alla pagina per registrati o accedere

Utilità dello ScatterPlot nei Progetti di Analisi Dati

Lo ScatterPlot è un'importante strumento di visualizzazione dati ampiamente utilizzato nell'analisi statistica e nell'indagine dei dati. Oltre ai contesti trattati nell'articolo, come la relazione tra due variabili e la ricerca di correlazioni, lo ScatterPlot può essere impiegato in molteplici altri contesti.

Ad esempio, nei progetti di analisi dati avanzata, lo ScatterPlot può essere utilizzato per identificare outliers o valori anomali all'interno del dataset. Questi punti, distanti dalla distribuzione principale dei dati, possono fornire preziose informazioni su fenomeni eccezionali o errori di misurazione.

Lo ScatterPlot può essere impiegato nella fase di esplorazione dei dati per individuare eventuali pattern o strutture nascoste. Attraverso l'osservazione della distribuzione dei punti sul grafico, è possibile identificare raggruppamenti o tendenze che potrebbero non emergere con altre tecniche di visualizzazione.

Infine, lo ScatterPlot può essere utilizzato per la visualizzazione di dati multidimensionali, mediante l'impiego di tecniche come la colorazione dei punti o l'aggiunta di dimensioni aggiuntive tramite grafici 3D. Questo permette di esplorare relazioni complesse tra più variabili simultaneamente, offrendo una panoramica dettagliata del dataset.

Personalizzazione dei Grafici con MatplotLib: Consigli e Trucchi

Oltre alla semplice creazione di grafici, MatplotLib offre una vasta gamma di opzioni per personalizzare l'aspetto e il layout dei grafici stessi. Alcuni suggerimenti e trucchi per ottenere grafici più accattivanti e informativi includono:

  • Personalizzazione degli assi e dei titoli: Utilizza i comandi di MatplotLib per definire titoli accattivanti per i tuoi grafici e per etichettare chiaramente gli assi x e y. Questo rende più semplice per gli utenti interpretare i dati rappresentati sul grafico.

  • Gestione dello sfondo e delle dimensioni: Modifica lo sfondo dei grafici per renderli più leggibili e professionali. Inoltre, regola le dimensioni dei grafici in modo da adattarle al contesto in cui verranno visualizzati, evitando grafici troppo piccoli o troppo grandi.

  • Utilizzo di marker e colori distintivi: Scegli marker e colori che si distinguono chiaramente sul grafico, facilitando l'individuazione dei punti e migliorando la leggibilità complessiva del grafico.

  • Aggiunta di legende e annotazioni: Fornisci chiare legende per i tuoi grafici in modo che gli utenti possano comprendere facilmente i dati rappresentati. Inoltre, considera l'aggiunta di annotazioni o testo esplicativo per fornire ulteriori contestualizzazioni o spiegazioni.

  • Esportazione e condivisione dei grafici: Una volta creato il grafico desiderato, ricorda di esportarlo in formati compatibili con la condivisione online o la pubblicazione su documenti. MatplotLib supporta vari formati di esportazione, come PNG, PDF e SVG, consentendo una facile condivisione e distribuzione dei grafici.

Con questi suggerimenti e trucchi, sarai in grado di creare grafici accattivanti e informativi utilizzando MatplotLib, arricchendo ulteriormente il tuo lavoro di analisi dati e visualizzazione delle informazioni.

Grazie mille per la lettura, condividi l'articolo per sostenerci