在gnuplot日志中绘制拟合($1):($2)定义xrange



我有一个关于在Gnuplot中绘制指数拟合和在logscale中设置y-axis的问题。我正在使用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

结果:

         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)没有显示,因为它是在负区域绘制的。)

'因为y axislogscale在拟合过程中需要y轴的对数;-)

fit [4:8] f(x) 'CT2A_OH_R_log.dat' u 1:(log($2)) via a,b

注意

如果要使用基于10的对数,则必须使用log($2)/log(10)log10($2)

最新更新