#!/usr/bin/env gnuplot -c
# == DEFINICIONS ==
outputfile = "../output/graph" # Nom de la imatge resultant (sense extensió)
plotfile = "../data/dades.dat" # Nom del fitxer de dades per dibuixar
datafile = "../data/dadesfit.dat" # Nom del fitxer de dades per fitar

# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
set terminal cairolatex size 10cm, 10cm
set output outputfile.'.tex'

# == CONFIGURACIÓ DEL PLOT ==
set xlabel "$\\dot{m} \\, (\\si{\\gram\\per\\second})$"
set ylabel "$P \\, (\\si{\\watt})$"

#set autoscale yfixmin
#set autoscale xfixmax

# Opcions per la llegenda:
set key above
set key spacing 1.5

# == CONFIGURACIÓ DEL 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 - n))

P(x) = L*x + b # Funció a fitar
fit P(x) datafile u 3:1 via L, b # Fem el fit de les dades

plot plotfile u 3:1:4:2 w xyerr t "Dades", P(x) t "$P(\\dot{m})$"

# == 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
