我有一个关于在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 axis
的logscale
在拟合过程中需要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)
。