diff --git a/p6/graphs/graph2.gnu b/p6/graphs/graph2.gnu
new file mode 100755
index 0000000..7211c72
--- /dev/null
+++ b/p6/graphs/graph2.gnu
@@ -0,0 +1,56 @@
+#!/usr/bin/env gnuplot -c
+outputfile="../output/graph2"
+datafolder="../data/"
+
+t_error=0.1#ºC
+p_error=0.5#e5 Pa
+error_sist_b=0.005
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 11cm, 8cm
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$\frac{1}{T} \, (\si{\per\kelvin})$'
+set ylabel '$\log(P \, \si{\per\pascal})'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+
+# == FIT ==
+set fit quiet
+
+# 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 - abs(n)))
+
+f(x) = a*x + b
+fit f(x) datafolder.'data_fit.dat' u (1/(column(1) + 273.15)):(log(column(2)*1e5)) via a, b
+stats datafolder.'data_fit.dat' u (1/(column(1) + 273.15)):(log(column(2)*1e5)) name "STATS" nooutput
+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)
+title_f(a, b, r) = sprintf('$f(T) = %.'.sd_error_a.'f \frac{1}{T} + %.'.sd_error_b.'f$, $r = %.'.sd_r.'f$', a, b, r);
+
+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))
+print(sprintf('r = %.'.sd_r.'f, sd=%.0f', r, sd_r))
+print(sprintf('r (extended version) = %.6f, sd=%.0f', r, sd_r))
+
+plot datafolder."data.dat" u (1/(column(1) + 273.15)):(log(column(2)*1e5)):(t_error/((column(1) + 273.15)**2)):(p_error/(column(2)*1e5)) w xyerr t "Dades experimentals", \
+     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
