Breve Introduzione all'utilizzo di Spyder per il Plot dei dati a livello scientifico

Pubblicato il - lettura in 4 min
Ludus Russo

Ludus Russo

Un maker, un robotico, un Roker!

Questa breve introduzione a Spyder è scritta come supporto per il corso Costruiamo un Laboratorio di Fisica con Arduino e Python tenuto durante Pycon8 a Firenze il 6 Aprile 2017. È mia intenzione ampliare e completare questa guida appena avrò un po’ di tempo.

Spyder

Spyder è un IDE per la programmazione scientifica che fa parte per tool Anaconda. È completamente basato in Python è può essere installato in modo semplice installando Anaconda questo link.

PyLab

Spyder viene installato insieme a Pylab, un modulo python molto utile per la programmazione scientifica e il plot di dati su un grafico.

Per abilitare PyLab all’avvio di Spyder (in modo da non doverlo importare manualmente ogni volta) basta abilitarlo da importazioni, accedendo (da barra dei menu) a Tool > Preference e selezionando il pannello IPython Console > Graphics, e abilitando Automatically load PyLab and Numpy Modules.

Dallo stesso pannello, conviene anche selezionare (sotto la voce backend) il tool grafico Qt5, che permette una migliore visualizzazione dei dati.

A questo punto, è necessario riavviare Spyder per abilitare le impostazioni.

Utilizzo di Spyder per disegnare i dati su un grafico 2D

Per disegnare dei dati, è ovviamente necessario prima di tutto crearli. Nei corsi che faccio, solitamente questi dati vengono misurati da un sistema di campionamento reale, tuttavia in questo corso genereremo questi dati direttamente da Python.

Generare dati in Python

Per disegnare un grafico 2D, servono due serie numeriche, una per l’asse delle ascisse ($x$) e una per l’asse delle ordinate ($y$). Utilizzeremo il comando arange per ottenere una serie di numeri su un intervallo con campionamento regolare. Se, ad esempio, vogliamo generare una serie di dati nell’intervallo $[-1 , 1]$ con passo di campionamento di $0.01$, useremo il comando

x = arange(-1,1,0.01)

Andiamo poi a generare la serie per l’asse $y$. Facciamo in modo di disegnare la bisettrice di primo e terzo quadrante, che si ottiene dalla banalissima equazione $y=x$. In Spyder, basta digitare

y = x

Il comando plot

A questo punto, possiamo disegnare i nostri dati usando il comando plot, come segue

plot(x,y)

Che aprirà una finestra con il grafico che abbiamo realizzato.

Esempio Plot

Dare un titolo al grafico e dei nomi agli assi

Il grafico realizzato non è ovviamente dei migliori. In Spyder, possiamo però anche dare un titolo al grafico e agli assi, in modo da dare informazioni al lettore su che tipo di dati sta visualizzando. Per fare questo, useremo i comandi title, xlabel e ylabel.

Per fare questo, ritorniamo alla finestra di Spyder senza chiudere la finestra dell’immagine, e digitiamo i seguenti comandi

title('Esempio di un semplice grafico in Spyder')
xlabel('Ascisse (x)')
ylabel('Ordinate (y)')

Se ritorniamo alla finestra del grafico, vedremo che questo è cambiato in accordo con i nostri comandi.

Esempio labels e titolo

Stile del disegno

Spyder permette anche di disegnare i grafici con stile diversi, sia per questione estetiche, ma anche per diversificare diverse linee che vengono visualizzate sullo stesso grafico.

Per dimostrare questo, creiamo altre due serie di punti, per disegnare le funzioni $y=x^2$ e $y=x^3$. Ricordate che in python, l’operatore elevamento a potenza è rappresentato dal simbolo **.

y2 = x**2
y3 = x**3

Ogni linea disegnata com plot può avere un marker e un colore. I colori si indicato con una lettera, ad esempio r sta per rosso, k sta per nero, ecc. I maker si indicato con uno o più simboli, ad esempio -- sta per tratteggiato e . sta per puntinato. Trovare qui tutti i colori disponibili e qui tutti i maker disponibili.

Vediamo come utilizzare i maker. Torniamo nuovamente alla finestra di Spyder (senza chiudere quella del grafico), e disegniamo la parabola in rosso tratteggiato e la cubica in blu puntinato:

plot(x,y2, 'r--')
plot(x,y3, 'b.')

Esempio marks

Ludus Russo

Ludus Russo

Un maker, un robotico, un Roker!

comments powered by Disqus
rss facebook twitter github youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora