blob: e2d4439fee3015578140cf2eb8da71112228f4f7 [file] [log] [blame]
avm99963f7ad1582021-05-26 00:17:58 +02001#!/usr/bin/env gnuplot -c
2# == DEFINICIONS ==
3outputfile = '../output/6_3_2_2' # Nom de la imatge resultant (sense extensió)
4datafile = '../data/6_3_2_2.dat' # Nom del fitxer de dades que es vol usar
5b_mean_exp_err = 0.00014
6a_exp_err = 0.002
7
8# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
9set terminal cairolatex size 10cm, 7.5cm font ",10"
10set output outputfile.'.tex'
11
12# == CONFIGURACIÓ DEL PLOT ==
13set xlabel '$B_b \, (\si{\milli\tesla)}$'
14set ylabel '${\scriptstyle (-1)^s} \frac{1}{T^2} =: y \quad (\si{\per\second\squared})$'
15
16# Opcions per la llegenda:
17set key above
18set key spacing 1.5
19set key font ",8.5"
20
21# == CONFIGURACIÓ DEL FIT ==
22set fit quiet
23
24f(x) = a*x + b # Funció a fitar
25fit f(x) datafile u 7:6 via a, b # Fem el fit de les dades
26
27# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
28# guardat a la var. "STATS_correlation"
29stats datafile u 7:6 name "STATS" nooutput
30
31# Funció per obtenir els dígits significatius d'una expressió
32f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
33significant_digits(n) = f_sd(n - 10*int(n/10), 0)
34
35significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
36
37error_a = sqrt(STATS_slope_err**2 + a_exp_err**2)
38sd_error_a = significant_digits(error_a)
39error_b = sqrt(STATS_intercept_err**2 + b_mean_exp_err**2)
40sd_error_b = significant_digits(error_b)
41r = STATS_correlation
42sd_r = significant_digits_r(r)
43
44print("=== ".datafile." ===")
45print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
46print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
47
48# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
49# l'equació de la regressió:
50title_f(a, b, r) = sprintf('$y(B_b) = %.'.sd_error_a.'f B_b + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
51
52set xtics 0.03
53
54plot datafile u 7:6:10 t "Dades experimentals" w yerr, f(x) t title_f(a, b, r)
55
56# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
57# Això ho uso per generar també una imatge de previsualització que puc carregar
58# a l'ordinador per veure més o menys com a sortit el plot sense haver
59# d'inserir-ho al LaTeX per veure-ho.
60set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
61set output outputfile.'.svg'
62replot