blob: 1e54a459ab3f48a5f38e814b73158a3fb49e94e9 [file] [log] [blame]
#!/usr/bin/env gnuplot -c
# == DEFINICIONS ==
datafile = ARG1 # Nom del fitxer de dades que es vol usar
datafilelow = ARG2
datafilehigh = ARG3
material = ARG4 # Nom del material del bloc que s'introdueix
outputfile = ARG5 # Nom de la imatge resultant (sense extensió)
error_sist_b = 0.001 # Error sistemàtic en l'eix y
debugmode = 0 # 0: off, 1: on
print('== '.datafile.' ==')
# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
set terminal cairolatex size 7.4cm, 6cm
set output outputfile.'.tex'
# == CONFIGURACIÓ DEL PLOT ==
set xlabel "$t \\, (\\si{\\second})$"
set ylabel "$m \\, (\\si{\\gram})$"
set autoscale yfixmin
set autoscale xfixmax
# Opcions per la llegenda:
set key above
set key spacing 1.5
# == CONFIGURACIÓ DEL FIT ==
set fit quiet
f(x) = a*x + b
g(x) = c*x + d
fit f(x) datafilelow u 1:(column(2)/1000) via a, b
fit g(x) datafilehigh u 1:(column(2)/1000) via c, d
if (debugmode) {
stats datafilelow u 1:(column(2)/1000) name 'LOW' nooutput
print(sprintf('a = %.4f', a))
print(sprintf('b = %.4f', b))
print(sprintf('R = %.4f', LOW_correlation))
stats datafilehigh u 1:(column(2)/1000) name 'HIGH' nooutput
print(sprintf('c = %.4f', c))
print(sprintf('d = %.4f', d))
print(sprintf('R = %.4f', HIGH_correlation))
}
stats datafile u 1:(column(2)/1000) name 'STATS' nooutput
print(sprintf('min = (%.4f, %.4f)', STATS_pos_min_y, STATS_min_y))
print(sprintf('max = (%.4f, %.4f)', STATS_pos_max_y, STATS_max_y))
M = STATS_max_y - f((STATS_pos_min_y + STATS_pos_max_y)/2)
print(sprintf('M = %.4f', M))
deltam = STATS_max_y - g((STATS_pos_min_y + STATS_pos_max_y)/2)
print(sprintf('delta m = %.4f', deltam))
set arrow 1 from ((STATS_pos_min_y + STATS_pos_max_y)/2),STATS_max_y to \
((STATS_pos_min_y + STATS_pos_max_y)/2),g(STATS_pos_min_y)
set arrow 1 nohead
set label 1 "$\\Delta m$" at \
((STATS_pos_min_y + STATS_pos_max_y)/2),((STATS_max_y + g(STATS_pos_min_y))/2) \
right offset -0.5
plot datafile u 1:(column(2)/1000) w p pt 7 ps 0.4 t "Dades experimentals", \
f(x) t "1r estat estable", g(x) t "2n estat estable"
# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
# Això ho uso per generar també una imatge de previsualització que puc carregar
# a l'ordinador per veure més o menys com a sortit el plot sense haver
# d'inserir-ho al LaTeX per veure-ho.
set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
set output outputfile.'.svg'
replot
print('')