Dopo una interessante lezione di astrofisica, scopro Gnuplot, applicazione che visualizza e traccia in un piano 2D o 3D una (o più) funzioni matematiche. Nonostante il suo nome mi abbia tratto inizialmente in inganno, Gnuplot non ha nulla a che fare con il progetto GNU, anche se comunque è Open Source e completamente gratuito.
Questo strumento è molto utile quando si ha la necessità di produrre grafica di buona qualità partendo da un insieme di dati o da funzione. Non c’è da meravigliarsi che, durante i suoi 20 anni di esistenza, sia stato impiegato in tutte le salse possibili.
Flessibile, potente e facile da usare, Gnuplot non è solo utile come programma stand-alone ma può essere integrato con una ampia gamma di linguaggi di programmazione, inclusi Ruby e Python. Basta davvero poco per imparare le basi per utilizzare Gnuplot. Essere in grado di vedere come si evolvono in un grafico le funzioni matematiche che ogni giorno studiamo, è molto utile per capire davvero come è fatta la matematica.
Gnuplot è una applicazione multi-piattaforma (funziona su Windows, Linux, Mac OS X, e altri sistemi Unix-like) ed è possibile trovarlo qui, hostato su SourceForge. In questo articolo, tratteremo Gnuplot su Windows.
Una volta installato, è possibile avviare Gnuplot eseguendo semplicemente il file “gnuplot.exe” (si trova nella cartella “binary”), che aprirà il Prompt dei Comandi dell’applicazione. Per provare subito la validità del software, possiamo digitare il comando “plot cos(x)”:
gnuplot> plot cos(x)
Gnuplot sceglie automaticamente quale parte della funzione deve essere mostrata (nel nostro caso, tra -10 e 10 lungo l’asse x). Se si vuole scegliere personalmente l’intervallo, allora ci basta scrivere:
gnuplot> plot [-2: 2] cos(x)
Allo stesso modo, è possibile personalizzare il grafico specificando un intervallo sull’asse y:
gnuplot> plot [] [-10:10] cos(x)
Nello stesso grafico, è anche possibile tracciare più funzioni contemporaneamente (basta separare con una virgola tutte le funzioni in gioco):
gnuplot> plot [-8:8] x**4, x**5, x**6
Gnuplot può disegnare ogni sorta di funzioni e la grafica. Ad esempio, il grafico delle due seguenti superfici (tratto da uno degli innumerevoli demo disponibili qui):
gnuplot> splot x**2+y**2, x**2-y**2
Da notare “splot”, ovvero il comando che disegna la nostra funzione su una superficie tridimensionale.
Ma, come già anticipato, Gnuplot non traccia solo funzioni matematiche. E’ infatti possibile importare una serie di dati persino da un file di testo. Basta lanciare il seguente comando:
gnuplot> plot "NOME.txt"
Per tracciare le linee, andando a formare una unica linea fra tutti i punti, basta aggiungere al comando “with lines”, o, in versione abbreviata, “w l”.
gnuplot> plot "NOME.txt" w l
Per chiarificare ancor meglio il grafico, è possibile mostrare una griglia. Per farlo digitiamo il comando:
Gnuplot> set griglia
e quindi ricostruiamo il grafico:
gnuplot> replot
Da notare che il comando “replot” si basa sull’ultima direttiva. Utile per evitare di riscrivere (o scorrere l’elenco dei comandi precedenti) la funzione o il file da importare. E ancora, per impostare anche i nomi del titolo e degli stessi assi x e y, basta lanciare i comandi:
gnuplot> set xlabel "NOME_ASSE_X"
gnuplot> set ylabel "NOME_ASSE_Y"
gnuplot> set title "TITOLO_DEL_GRAFICO"
Questa introduzione molto breve serve a dare uno sguardo a ciò che Gnuplot può fare per noi. Ma Gnuplot è molto più di questo e infinitamente personalizzabile in modo davvero sorprendente per una applicazione completamente gratuita.
Per saperne di più sui comandi disponibili, consiglio la lettura di questo documento in PDF di Giuseppe Ciaburro. Mentre per un libro vero e proprio su Gnuplot è “Gnuplot in Action” della Manning Publications (qui la pagina su Amazon; codice ISBN-10: 1933988398).