OK, ancora Gnuplot, continuo da qui: Gnuplot – primi passi. In realtà per quel che serve alle mie necessità non c’è molto altro da dire. È vero che ci sarebbero tante altre possibilità, come inserire scritte nel grafico ma non sottovalutare Gimp (o Photoshop).
Inoltre disegni complessi conviene gestirli diversamente. È il caso delle mappe che risultano strettamente legate all’elaborazione e spesso sono richieste l’utilizzo di basi e scale ben precise.
Però ci sono ancora alcuni grafici da esaminare. Per esempio i boxes. Ecco un esempio, complesso, copiato dal sito Gnuplotting
# AUTHOR: Hagen Wierstorf -- modificato set terminal x11 size 350, 262 # color definitions set border linewidth 1.5 set style line 1 lc rgb 'gray30' lt 1 lw 2 set style line 2 lc rgb 'gray40' lt 1 lw 2 set style line 3 lc rgb 'gray70' lt 1 lw 2 set style line 4 lc rgb 'gray90' lt 1 lw 2 set style line 5 lc rgb 'black' lt 1 lw 1.5 set style fill solid 1.0 border rgb 'grey30' set key right top set border 3 set tics scale 0.75 set xtics nomirror out ('Condition 1' 0,'Condition 2' 1) set ytics nomirror out 0.5 set yrange [0:1.3] set xrange [-0.6:2] # Draw line for significant test set arrow 1 from 0,1 to 1,1 nohead ls 5 set arrow 2 from 0,1 to 0,0.95 nohead ls 5 set arrow 3 from 1,1 to 1,0.95 nohead ls 5 set label '**' at 0.5,1.05 center # Size of one box bs = 0.2 # Plot mean with variance (std^2) as boxes with yerrorbar plot 'dbox' i 0 u ($0-bs):1:($2**2) notitle w yerrorb ls 1, \ '' i 0 u ($0-bs):1:(bs) t 'A' w boxes ls 2, \ '' i 1 u 0:1:($2**2) notitle w yerrorb ls 1, \ '' i 1 u 0:1:(bs) t 'B' w boxes ls 3, \ '' i 2 u ($0+bs):1:($2**2) notitle w yerrorb ls 1, \ '' i 2 u ($0+bs):1:(bs) t 'C' w boxes ls 4
# Condition 1 # Condition 2 # # mean std # A 0.77671 0.20751 0.33354 0.30969 # B 0.64258 0.22984 0.19621 0.22597 # C 0.49500 0.31147 0.14567 0.21857
Un’altra possibilità e quella di produrre un file DXF, per AutoCAD. Ecco un esempio minimo. L’ho visualizzato con LibreCAD, ovviamente.
set term dxf set output 'dxf.dxf' TITLE = "DXF" set title TITLE offset char 0, char -1 set xrange [0:7] set yrange [0.7:10.3] unset key #toglie la legenda plot "dati-dxf" with linespoints # lw 3
1 1 .1 2 2 .2 3 6 .7 4 4 .2 5 2 .5 6 7 .6
Anche in questo caso i miei contatti su questo la sanno molto più lunga.
Una cosa che pensavo utile sono le scale logaritmiche. Supponiamo di avere questa serie di dati
0 1 0.5 2 1 3 1.5 4 2 7 2.5 12 3 20 3.5 33 4 55
il grafico “normale” risulta questo
set term x11 size 400,300 TITLE = "esponenziale" set title TITLE offset char 0, char -1 set xrange [0:4.5] set yrange [0:60] unset key #toglie la legenda plot "dexp" with lines lw 3
Se l’asse y è logaritmico si ha invece
set term x11 size 400,300 TITLE = "esponenziale" set title TITLE offset char 0, char -1 set logscale y set xrange [0:4.5] set yrange [0.1:60] unset key #toglie la legenda plot "dexp" with lines lw 3
Fin qui non ci sono difficoltà di rappresentazione ma per x = 5 si ha y = 148. Però mi dicono che i logaritmi sono delle brutte bestie che nessuno capisce. Anche se le scale per il livello sonoro e l’intensità dei terremoti, ampiamente note e usate, sono logaritmiche (ma nessuno lo sa, c’è una congiura contro noi tutti!).
Molto apprezzata è stata la prassi di avere i dati separati dallo script. Questo rende più agile la modifica al volo di quest’ultimo. Cosa però non nuova, almeno per me è vecchia di 30 anni.
OK! ci sarebbero ancora parecchie cose da esaminare e raccontare. Questo è quello che mi serviva per le elaborazioni in Fortran (principalmente, c’è anche Java) di cui ho parlato negli ultimi mesi.
Per approfondimenti vi rimando al sito Gnuplotting: c’è tutto, anzi di più 😀
Personalmente voglio dare una sbirciatina a Asymptote, quello consigliato e usato da Massimo 😀
Trackback
[…] resto fermo a quanto detto qui, qui e qui. Anche perché ho riscoperto quanto la messa a punto di un programma ‘vero’ sia cosa […]
[…] punto devo dare prima una spiegazione: a cosa serve, cosa devo fare? Ecco, si tratta di Gnuplot. Qui un esempio semplicissimo, per comodità ricopio lo […]