【问题标题】:Plotting fit in gnuplot log($1):($2) defining xrange在 gnuplot 日志中绘制拟合 ($1):($2) 定义 xrange
【发布时间】:2016-07-30 19:34:24
【问题描述】:

我有一个关于在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) 未显示,因为它绘制在负区域中。)

【问题讨论】:

    标签: plot gnuplot data-fitting


    【解决方案1】:

    因为 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)

    【讨论】:

    • 谢谢!我忽略了一个如此愚蠢的错误!但是,我现在这样做了,但我仍然得到了一个奇怪的拟合: 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 这次拟合是指数型的。我想添加一张图片,但我不能在评论部分这样做。所以,请看下面的评论:
    【解决方案2】:

    @汤姆固体

    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 
    

    这次拟合是指数级的。

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

    【讨论】:

      猜你喜欢
      • 2014-06-25
      • 2014-07-01
      • 2016-01-31
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多