diff --git a/p7/graphs/generateGraphs.bash b/p7/graphs/generateGraphs.bash
new file mode 100644
index 0000000..778b5be
--- /dev/null
+++ b/p7/graphs/generateGraphs.bash
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+mkdir -p ../output
+
+files=('escalfant' 'refredant')
+xtics=('500' '200')
+
+for i in 0 1; do
+  ../../p4/graphs/graph.gnu "../data/${files[i]}.dat" "../data/${files[i]}_deriva.dat" "../output/${files[i]}" "../output/${files[i]}_wd" "${xtics[i]}"
+done
+
+./sensibilitat.gnu
diff --git a/p7/graphs/sensibilitat.gnu b/p7/graphs/sensibilitat.gnu
new file mode 100755
index 0000000..036707c
--- /dev/null
+++ b/p7/graphs/sensibilitat.gnu
@@ -0,0 +1,51 @@
+#!/usr/bin/env gnuplot -c
+outputfile="../output/sensibilitat"
+datafile="../data/sensibilitat.dat"
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 11cm, 8cm
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$T \, (\si{\kelvin})$'
+set ylabel '$S \, (\si{\milli\volt\per\watt})$'
+
+# 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) datafile u 1:2 via a, b
+stats datafile u 1:2 name "STATS" nooutput
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_slope_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+title_f(a, b, r) = sprintf('$S(T) = %.'.sd_error_a.'f 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))
+
+plot datafile u 1:2 t "Dades", \
+     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
