Rappresentazione grafica dei dati con Python – Matplotlib
Quando si affrontano problemi di analisi dei dati è fondamentale avere la possibilità di osservare gli stessi in qualche forma grafica, pertanto in questa serie di articoli proverò ad illustrare come disegnare, in modo semplice, dei grafici utilizzando python ed alcune librerie create per lo scopo.
Per gli esempi successivi userò Jupyter notebook, pertanto se non sapete di cosa si tratta vi invito a dare un occhio a questo articolo. Una possibile alternativa potrebbe essere colab di google. |
Bene se avete già provveduto ad istallare Jupyter iniziate a creare un nuovo notebook altrimenti vi consiglio di fare un passo indietro ed installare il software per seguire l’esempio step by step.
Creazione del progetto Jupyter notebook
Aprite una shell, create una nuova directory e lanciate il comando jupyter notebook
mkdir MATPLOTLIB cd MATPLOTLIB/ jupyter notebook
si aprirà un finestra del tuo browser
a questo punto selezionate l’interprete Python 3 per inizializzare l’ambiente
La prima libreria che andremo a studiare è:
Matplotlib
Matplotlib è una libreria con cui è possibile disegnare grafici 2d e 3d. Per usarla la prima cosa che dobbiamo fare è importarla, e nel farlo sfrutteremo pyplot che offre un’interfaccia di programmazione simile a MATLAB.
import matplotlib.pyplot as plt
importiamo anche una libreria matematica molto potente numpy
import numpy as np
scegliamo una funzione da graficare
def retta(x): return 4*x+1
indichiamo che le x possono variare da 0 a 100
x=np.arange(100)
costruiamo la retta
y=retta(x)
tracciamo il grafico
plt.plot(x,y)
per completezza riporto l’esempio in jupyter.
proviamo a fare lo stesso esempio ma con un grafico un pò più complesso
import matplotlib.pyplot as plt import numpy as np def f(x): return 20 + 105*np.cos(x)*np.sin(x+30) + 144*np.exp(0.5/x+1) x=np.arange(-100,100) y=f(x) plt.plot(x,y)
cerchiamo di approfondire le possibilità offerte da pyplot.
Per cambiare colore ai grafici possiamo usare l’istruzione:
plt.plot(x,y, color="<color_RGB>")
ad esempio
plt.plot(x, y, color='3412F3')
per cambiare il range degli assi posso utilizzare le istruzioni:
plt.xlim(left_x,right_x) oppure plt.ylim(bottom_y,top_y)
ad esempio
plt.xlim(-10,76) plt.ylim(-100,600) plt.plot(x, y)
se volessimo, invece, ad esempio tracciare un grafico con linea tratteggiata o punteggiata potremmo usare il parametro linestyle=”dashed” o linestyle=”dotted” ad esempio:
plt.plot(x,y,linestyle="dashed")
Se volessimo usare dei marker potremmo usare il parametro marker=’o’
plt.plot(x,y, marker='o')
per aggiungere delle informazioni agli assi o una legenda possiamo usare le seguenti istruzioni:
plt.plot(x,y,label="y=f(x)") plt.title("esempio di grafico") plt.xlabel("andamento delle x") plt.ylabel("andamento della f(x)") plt.legend()
Per disegnare più grafici possiamo seguire il seguente approccio:
- definiamo le funzioni da graficare,
- definiamo il range delle x
- “plottiamo” i grafici ripetendo il comando plot per il numero delle funzioni da rappresentare.
import matplotlib.pyplot as plt import numpy as np def f(x): return 20 + 105*np.cos(x)*np.sin(x+30) + 144*np.exp(0.5/x+1) def retta(x): return 4*x+1 x=np.arange(-100,100) plt.plot(x,f(x)) plt.plot(x,retta(x))
Ovviamente è possibile usare i vari parametri in un unica istruzione, ad esempio per rappresentare una funzione di colore viola, con marker circolari e stile della linea tratteggiata possiamo scrivere:
plt.plot(x, y, color='#8712F3', marker='o', linestyle='dashed', linewidth=2, markersize=12)
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments