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


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

Scarica Gratuitamente l'esempio


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

Scarica Gratuitamente l'esempio


Per scaricare gratuitamente devi prima registrati/accede al portale.

Scorri in fondo alla pagina per registrati o accedere




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

3,438 visualizzazioni1 commento

Post recenti

Mostra tutti

VUOI SCRIVERE ARTICOLI PER NOI.

Se vuoi scrivere articoli sul mondo dell' AI ed avere la tua visibilità, contattaci adesso.
Grazie per l'interesse dimostrato.

VUOI DIVENTARE UN MEMBRO UFFICIALE DELLA NOSTRA COMMUNITY E TRARNE I SEGUENTI BENEFICI?

Forum

Accedi al forum e fai domande o crea discussioni con esperti del settore. Potrai anche fare proposte di lavoro, condividere i tuoi progetti ed altro

Sfide

Accedi a diverse e diverti sfide sulla programmazione e intelligenza artificiale. Appena completerai la sfida riverai la certificazione

Download

Potrai scaricare in modo gratuito tutti i file dei vari progetti nel portale. Ogni progetto è disponibile in formato PDF, PYTHON, NOTEBOOK

E molto altro

Appena ti sarai registrato ti arriverà un e-book in regalo e in futuro ne riceverai altri...

In oltre potresti ricevere sconti o buoni

Se ti piacciono i benefici, i regali e vuoi essere aggiornato quando escono nuovi articoli, progetti o news premi il tasto qui sotto e registrati/accedi con Google, Facebook o con la tua email

Se invece preferisci solo sapere quando esce un nuovo articolo Senza ricevere i privilegi nel portale sopra descritti iscriviti qui sotto alla news letter

Rimani aggiornato, tranquillo anche noi odiamo lo SPAM

Segui i nostri canali social

Segui i nostri canali social 

  • YouTube Icona sociale

Youtube

  • Instagram

Instagram

  • Spotify Icona sociale

Spotify

  • White Facebook Icon

Facebook

  • Twitter Icon sociale

Twitter

©2020 Intelligenza Artificiale Italia

  • Instagram
  • Facebook Icona sociale
  • Youtube