使用Gnuplot时,如何在行标题中打印一行的等式?

时间:2012-01-30 20:10:37

标签: regression gnuplot

我使用Gnuplot绘制我的数据,以及线性回归线。目前,这条线的“标题”,其方程由Gnuplot计算,只是“f(x)”。但是,我希望标题是回归线的等式,例如“表达式y = mx + C”。

我可以通过从绘图信息输出中读取'm'和'c'手动完成此操作,然后使用新标题重新绘制。我希望这个过程是自动化的,并且想知道是否可以这样做,以及如何去做。

2 个答案:

答案 0 :(得分:22)

使用数据文件Data.csv

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

您可以使用以下方式进行线性拟合:

f(x) = a*x + b

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

您可以使用我认为在gnuplot中称为宏的内容,使用

在您标识的函数f(x)的图例中设置标题
title_f(a,b) = sprintf('f(x) = %.2fx + %.2f', a, b)

现在,为了使用回归函数f(x)绘制数据,只需执行以下操作:

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

你最终应该得到这个情节:

enter image description here

答案 1 :(得分:1)

来自Correlation coefficient on gnuplot

另一种,也许比Woltan做同样事情的方式略短:

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