Ancora Gnuplot

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 😀

Posta un commento o usa questo indirizzo per il trackback.

Trackback

  • Asymptote, bello ma no « Ok, panico su 3 ottobre 2012 alle 09:59

    […] resto fermo a quanto detto qui, qui e qui. Anche perché ho riscoperto quanto la messa a punto di un programma ‘vero’ sia cosa […]

  • Invece del link | Ok, panico su 26 febbraio 2013 alle 15:25

    […] 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 […]

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.