top of page

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


Prerequisiti :


scatterplot intelligenza artificiale
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
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 ai
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

1 Comment

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Romeo Ceccato
Romeo Ceccato
Jan 09, 2021

credo che sia una buona partenza per l'apprendimento.... complimenti

Like
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online