Rappresentazione grafica dei dati con Python – Matplotlib: Seconda Parte

APPUNTI, INFORMATICA, TUTORIAL

Nel precedente articolo ho parlato di  matplotlib per disegnare delle curve generiche, in questo farò vedere come disegnare grafici a dispersione, istogrammi e serie temporali.

Vi ricordo che per gli esempi successivi userò Jupyter notebook, pertanto se non sapete di cosa si tratta  vi invito a dare un occhio a questo articolo.

Creazione del progetto Jupyter notebook

Aprite una shell, create una nuova directory e lanciate il comando jupyter notebook

mkdir ESEMPIO
cd ESEMPIO/
jupyter notebook

si aprirà un finestra del tuo browser

a questo punto selezionate l’interprete Python 3 per inizializzare l’ambiente

Grafici a dispersione

per prima cosa importiamo le librerie necessarie:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

Per generare i punti nello spazio di dispersione usiamo numpy.

#Generiamo dei punti casuali
randomPoints=np.random.randn(100,2);
np.random.randn restituisce i campioni nello spazio di  dispersione.

Se vengono forniti argomenti positivi interi, randn genera un array  (d0, d1, …, dn), riempito con float casuali campionati secondo una distribuzione “normale” (gaussiana)  di media 0 e varianza 1.  Se non viene fornito alcun argomento verrà restituito un singolo campione float casuale della distribuzione standard .

L’istruzione precedente genererà 100 punti in modo casuale. Il risultato sarà qualcosa del genere:

array([[-0.28393081,  1.69444015],
       [ 1.18710769,  0.75168393],
       [-1.08797599,  0.16593107],
       [ 0.34718794,  1.50584947],
       [ 0.59907203,  0.34574815],
       [-1.17150305,  1.32782198],
       [-0.66961386,  0.13941936],
       [ 0.96038988, -0.04362326],
       [-0.42828503, -1.35202516],
       [-0.57520301, -0.5182515 ]])

A questo punto  possiamo creare il dataframe che utilizzeremo  come parametro di  pyplot  matplotlib

df = pd.DataFrame(randomPoints,columns=['x', 'y'])

e stampare il grafico di dispersione

plt.plot(df['x'],df['y'],'.')

 

 

Esempio completo

Se volessimo rappresentare punti più evidenti potremmo usare l’opzione di stampa “o” anziché “.”

plt.plot(df['x'],df['y'],'o')

altre opzioni possono consentirci di creare grafici più significativi, definendo la grandezza dei punti ed il colore, ma per farlo dovremo utilizzare la funzione scatter al posto di plot.

N.B Per il nostro esempio utilizzeremo dei dati casuali anche per i colori e per la grandezza dei punti;

colore_casuale=np.random.randn(100)
r_casuale_punto=1000*np.random.randn(100)
plt.scatter(df['x'],df['y'],s=r_casuale_punto,alpha=0.6,c=colore_casuale)

 

<< Rappresentazione grafica dei dati con Python – Matplotlib
Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form