Gnuplot:在对数刻度中使用拟合

时间:2014-04-05 00:16:03

标签: graphics gnuplot approximation

我需要进行线性近似。但是它需要在对数范围内。

这是我的gnuplot脚本:

f(x)= a*x+b
fit f(x) "d0.dat" via a,b
set logscale x
set logscale y
plot "d0.dat" with points lt rgb "#ff0000" title "Points", \
f(x) with lines lt rgb "#ff00ff" title "Approximation"

enter image description here

显然,近似是错误的。任何人都可以帮我解决它。我在google中找不到任何东西。

2 个答案:

答案 0 :(得分:4)

Gnuplot正确地将您的数据拟合到您提供的功能 - 直线。

问题在于,使用y轴的对数刻度不会缩放数据 - 只是如何绘制数据。

尝试使其符合幂律:

f(x)= a*x**b
fit f(x) "d0.dat" via a,b
set logscale x
set logscale y
plot "d0.dat" with points lt rgb "#ff0000" title "Points", \
f(x) with lines lt rgb "#ff00ff" title "Approximation"

答案 1 :(得分:1)

我实际上建议直接适合logscale:

name

当(几个)大x的值不合适时,差异是明显的。否则成本函数会受到太大影响(因为x和y呈指数增长)。