Primi passi con GNUPlot – Lezione 2

Bene eccoci alla seconda lezione sull’utilizzo di GNUPlot.

Nella lezione precedente abbiamo visto i comandi base per cominciare a creare grafici, mediante la funzione plot, come dargli un titolo al grafico, agli assi, come danre una legenda.

Oggi andiamo avanti nella scoperta di questo strumento, parlando di:

  • Come cambiare il range per ogni asse
  • Come salvare il grafico su di un file
  • Come leggere i dati da un file.

Alcune volte abbiamo necessità, di modificare l’intervallo visualizzabile su di un asse, che sia X o Y, questo lo facciamo anteponendo alla funzione di cui ne stiamo facendo il grafico il range desiderato per ogni asse (se dobbiamo modificarlo di entrambi), la sintassi è simile alla seguente:

plot [xmin:xmax] [ymin:ymax] funzione

dove:

  • xmin è il valore di minimo visualizzabile per l’asse X
  • xmax è il valore di massimo visualizzabile per l’asse X
  • ymin è il valore di minimo visualizzabile per l’asse Y
  • ymax è il valore di massimo visualizzabile per l’asse Y
  • funzione è la funzione che desideriamo stampare

Per esempio se inseriamo il seguente grafico:

plot [0:5] [0:2] sin(x)

otterremo il seguente grafico:

Grafico con range
Il grafico della funzione sin(x) con range definiti.

Come vedete così viene mostrata solo una parte di grafico.

Ora alcune volte abbiamo la necessità di leggere dati da un file, per fare il nostro grafico. Anche in questo caso si tratta di un operaziopne semplicissima. La sintassi per la lettura di dati da un file è la seguente:

plot "nomefile" using xcolumn:ycolumn with dottype

Dove:

  • nomefile identifica appunto il file che noi andremo a leggere (ricordare di mettere le virgolette)
  • xcolumn e’ il numero di colonna che contiene i valori per l’asse X
  • ycolumn e’ il numero di colonna con i valori per l’asse Y
  • dottype  invece indica il formato  con cui vogliamo verdere i risultati del grafico, ovvero se vogliamo delle linee, dei punti, o altro. Questo argomento non è obbligatorio, lo affronteremo piu in dettaglio nelle prossime lezioni. Per ora nell’esempio che segue useremo come formato lines.

Notare appunto che il file con i dati puo contenere anche piu colonne.  Per esempio, apriamo un editor di testo e salviamo i seguenti valori al suo interno:

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

Salviamo questo file (io l’ho chiamato testat). Ora in gnuplot digitiamo:

plot "testat" using 1:2 with lines

Il risultato sarà come quello in figura:

Output dati da file
I dati sono stati presi dal file testat

Se invece avessimo levato la selezione del formato delle linee del grafico, quindi avremo dato semplicemente il comando:

plot "testat" using 1:2

il risultato che avremo ottenuto sarebbe stato il seguente:

I dati da file rappresentati con dei punti
In questo caso abbiamo rimosso la parte "with lines" dal comando

Ma cosa dobbiamo fare se vogliamo salvare il nostro grafico su un file ? Niente di piu facile bastano due semplici comandi :

  1. Il primo serve per selezionare il “terminale” di output per il grafico, e ha una sintassi simile alla seguente:
    set term formato

    dove formato è il tipo di terminale, per una lista di terminali disponibili basta dare il comando:

    set term

    Nel caso di output direttamente in una finestra, probabilmente il terminale scelto è wxt mentre se vogliamo l’output per esempio in un file png, dobbiamo scegliere come tipo di terminale appunto png, dando il comando:

    set term png
  2. Una volta selezionato il terminale dobbiamo dire su quale file salvarlo, e questo lo facciamo con il comando:
    set output "nomefile.ext"

    dove nomefile.ext è il nome del file in cui andremo a salvare il nostro grafico.  Una volta fatto ciò possiamo usare come di consueto la funzione plot e stampare il grafico come meglio crediamo 🙂

Bene per ora mi fermo, arrivederci alle prossime lezione, dove vedremo diversi formati di linee per i grafici, alcuni giochi che si possono fare con i dati, il formato data come si utilizza in gnuplot, etc.

Leave a Reply

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