绘制适合gnuplot日志($ 1):( $ 2)定义xrange

时间:2016-07-30 19:34:24

标签: plot gnuplot data-fitting

我有一个关于在Gnuplot中绘制指数拟合并在y-axis中设置logscale的问题。我正在使用 Gnuplot 4.6.3 。 我将介绍一些尝试设置范围以适应的方法:

我想要适合数据的函数是 f(x)= a + b * x

第一个:

set log y
f(x)=a+b*x
fit [4:8] f(x) 'CT2A_OH_R_log.dat' using (log($1)):($2) via a,b

Resutls:

         Read 15 points
         Skipped 15 points outside range [x=4:8]
         No data to fit
         error during fit

第二个:

fit f(x) 'CT2A_OH_R_log.dat' using (log($1)):($2) via a,b

结果:

Final set of parameters              Asymptotic Standard Error
a          =16.9858                  +/- 6.299          (37.08%)
b          =-8.43215                 +/- 3.502          (41.53%)
gnuplot> plot 'CT2A_OH_R_log.dat', f(x) via a,b 

显然这种合适是荒谬的,但这是我所知道的唯一能让我觉得合适的方式。我知道问题很可能在于xrange在拟合时的定义,但我还能在那里写什么来解决这个问题?

下面我将展示我的情节图像(f(x)未显示,因为它是在负面区域绘制的。)

2 个答案:

答案 0 :(得分:1)

'导致y logscale的{​​{1}}在拟合期间需要y轴的对数; - )

axis

注意

如果您想使用基于10的对数,则必须使用fit [4:8] f(x) 'CT2A_OH_R_log.dat' u 1:(log($2)) via a,b log($2)/log(10)

答案 1 :(得分:0)

@Tom Solid

gnuplot> fit [4:8] [0.1:60] f(x) 'CT2A_OH_R_log.dat' using 1:(log($2)) 
via a,b 
gnuplot> plot 'CT2A_OH_R_log.dat', f(x) via a,b 

这次拟合是指数式的。

所以,我将发布我现在得到的图片:

enter image description here