Primi passi con Gnuplot- Lezione 4

Eccoci giunti alla quarta lezione del mincorso sull’utilizzo di GNUPlot. In questa lezione parleremo ancora delle modalita di rappresentazione dei dati dei nostri grafici, ed in particolare vedremo:

  • Come utilizzare delle variabili e funzioni per disegnare il nostro grafico
  • Come modificare alcuni dati in fase di creazione
  • Altre forme modalità di visualizzazione dei grafici.

Partiamo subito dall definizione di variabili. Tramite gnuplot e’ possibile definirle in maniera molto semplice, ovvero scrivendo variabile=espressione. Per esempio definiamo una variabile di nome testvar che ha come valore 3 ci basta dare il comando:

a = 3

Così facendo abbiamo definito la variabile a, che possiamo ora usare nel nostro grafico per esempio potremo voler moltiplicare i risultati della funzione sin(x) per 3 avremo quindi:

a = 3
plot a*sin(x)

il risultato che otteremo sarà il seguente:

Screenshot-Gnuplot 3*sin(x)

Ora se avessimo necessita di stampare nuovamente il valore di una delle nostre variabili, possiamo farlo mediante il comando print:

gnuplot> print a
3

Che semplicemente stampa il valore della variabile.

Ora gnuplot oltre che a delle variabili ci permette di definire delle funzioni. Se per esempio vogliamo fare il grafico della funzione

f(x) =a * (sin(x)*2x)

Procediamo come fatto per le variabili, definiamo prima la funzione con: funzione = formula e poi la stampiamo. Quindi per la funzione dell’esempio avremo (ripeto la definizione della variabile a per chiarezza):

a = 3
f(x) = a * (sin(x)*(2*(x))
plot f(x)

e il risultato di questa funzione sarà:

Screenshot-Gnuplot a*f(x)
Ecco il risultato

Come vedete lavorare con funzioni e variabili definite dall’utente è abbastanza facile.

Cambiamo ora argomento e torniamo ai nostri dati salvati su file. Abbiamo capito come fare il grafico di dati salvati su files, ma ora se per esempio dobbiamo applicare una certa modifica a tutti i valori di una delle colonne che dobbiamo prendere in considerazione (per esempio aggiungere un valore costante piuttosto che farne la radice quadrata o altro) come facciamo? La soluzione anche in questo caso è molto semplice, infatti ci basta applicare la formula di modifica sull’indicatore di colonna con un piccolo accorgimento.

Salviamo i seguenti valori in un file:

1    10
2    10
3    40
4    20
5    50
6    10
7    8
8    5
9    10
10    13
11    20
12    40

(il file nel mio esempio e’ chiamato testat). Vogliamo che tutti i valori della seconda colonna vengano aumentati di 10 unità:

plot "testat" using 1:(10+$2)

La figura seguente riporta il grafico del file testat aumentato (in rosso) e normale (in verde) e per far veder meglio la differenza ho usato le linee al posto dei punti:

Screenshot-Gnuplot testat aumentato e normale

L’accorgimento da utilizzare e’ usare il $ davanti l’indicatore di colonna, quando questo viene immesso all’interno di una espressione.

Vediamo infine anche come e’ possibile da un file di dati, mostrare una linea che cerca di approsimarli tutti. Gnuplot mette a disposizione diverse modalita, ognuna differente le 2 principali sono:

  • splines
  • bezier

La prima connette tutti i punti, mentre la seconda cerca cerca di approssimare l’andamento dei dati. La sintassi e’:

plot "nomefile" using x:y smooth tipo

Dove per tipo abbiamo la possibilita di scegliere fra csplines, bezier, sbezier, frequency, unique.Il prossimo grafico mostrerà tutte le tipologie di approssimazione del file testat (escluso acsplines):

Screenshot-Gnuplot smoothlines

E la leggenda:

Da notare che unique non si riesce a vedere, in quanto coincide con frequency.

Bene per oggi e’ tutto. Alla prossima lezione.

Leave a Reply

Your email address will not be published. Required fields are marked *