2012-01-30 8 views
8

He usado Gnuplot para trazar mis datos, junto con una línea de regresión lineal. Actualmente, el 'título' de esta línea, que tiene su ecuación calculada por Gnuplot, es solo "f (x)". Sin embargo, me gustaría que el título sea la ecuación de la línea de regresión, p. "y = mx + c".Al usar Gnuplot, ¿cómo se puede imprimir la ecuación de una línea en el título de la línea?

Puedo hacerlo manualmente leyendo 'm' y 'c' desde la salida de información de trazado, luego vuelva a trazar con el nuevo título. Me gustaría que este proceso se automatizara, y me preguntaba si esto se puede hacer y cómo hacerlo.

Respuesta

21

Con un archivo de datos Data.csv:

0 0.00000 
1 1.00000 
2 1.41421 
3 1.73205 
4 2.00000 
5 2.23607 

se puede hacer un ajuste lineal con:

f(x) = a*x + b 

fit f(x) 'Data.csv' u 1:2 via a, b 

Usted puede usar lo que creo que se llama una macro en gnuplot para establecer el título en el leyenda de la función identificada f(x) con

title_f(a,b) = sprintf('f(x) = %.2fx + %.2f', a, b) 

Ahora con el fin de representar los datos con la función de regresión f(x) simplemente hacer:

plot "Data.csv" u 1:2 w l, f(x) t title_f(a,b) 

Usted debe terminar con esta trama:

enter image description here

1

De Correlation coefficient on gnuplot:

Otro, quizás un poco más corto que el de Woltan de hacer lo mismo puede ser:

# This command will analyze your data and set STATS_* variables. See help stats 
stats Data.csv 
f(x) = STATS_slope * x + STATS_intercept 
plot f(x) title sprintf("y=%.2fx+%.2f", STATS_slope, STATS_intercept) 
Cuestiones relacionadas