diff --git a/p4/graphs/finalgraph.gnu b/p4/graphs/finalgraph.gnu
new file mode 100755
index 0000000..dd9c4d4
--- /dev/null
+++ b/p4/graphs/finalgraph.gnu
@@ -0,0 +1,59 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = "../output/finalgraph" # Nom de la imatge resultant (sense extensió)
+datafile = "../data/finaldata.dat" # Nom del fitxer de dades que es vol usar
+error_sist_b = 0.11 # Error sistemàtic en
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7cm
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel "$T \\, (\\si{\\celsius})$"
+set ylabel "$S \\, (\\si{\\per\\ampere})$"
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 2:4 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 2:4 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - n))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = sqrt(STATS_slope_err + error_sist_b)
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$S(T) = %.'.sd_error_a.'f T + %.'.sd_error_b.'f$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 2:4:(0.1):5 t "Dades experimentals" w xyerr, f(x) t title_f(a, b, r)
+
+# == 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
