diff --git a/p6/graphs/generateGraph.bash b/p6/graphs/generateGraph.bash
new file mode 100644
index 0000000..bdcd1b0
--- /dev/null
+++ b/p6/graphs/generateGraph.bash
@@ -0,0 +1,4 @@
+#!/bin/bash
+mkdir -p ../output
+./graph.gnu
+./graph2.gnu
diff --git a/p6/graphs/graph.gnu b/p6/graphs/graph.gnu
new file mode 100755
index 0000000..44bf52d
--- /dev/null
+++ b/p6/graphs/graph.gnu
@@ -0,0 +1,30 @@
+#!/usr/bin/env gnuplot -c
+outputfile="../output/graph"
+datafolder="../data/"
+
+t_error=0.1#ºC
+p_error=0.5#e5 Pa
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 11cm, 8cm
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$T \, (\si{\celsius})$'
+set ylabel '$P \, (\SI{e5}{\pascal})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+
+plot datafolder."data.dat" u 1:2:(t_error):(p_error) w xyerr t "Corba d'equilibri fases líquid-vapor", \
+     datafolder."puntcritic.dat" u 1:2:3:4 w xyerr t "Punt crític"
+
+# == 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
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
