gnuplot中对数刻度图中的X范围限制

gnuplot中对数刻度图中的X范围限制,gnuplot,Gnuplot,我正在尝试使用logscale在gnuplot中拟合一个图。我有50000个数据点。 起初,我用这种方法拟合这个情节 f(x) = b + m*x fit f(x) "xyMSD-all-mal-cel-iso-bcm-thermo2.dat" using 1:2 via m,b 我得到了斜率值。然后我试着得到不同范围的斜率值,如下所示 fit [30000:50000] f(x) "xyMSD-all-mal-cel-iso-bcm-thermo2.dat" using 1:2 v

我正在尝试使用logscale在gnuplot中拟合一个图。我有50000个数据点。 起初,我用这种方法拟合这个情节

 f(x) = b + m*x
 fit f(x) "xyMSD-all-mal-cel-iso-bcm-thermo2.dat" using 1:2  via m,b
我得到了斜率值。然后我试着得到不同范围的斜率值,如下所示

 fit [30000:50000] f(x) "xyMSD-all-mal-cel-iso-bcm-thermo2.dat" using 1:2  via m,b
上面的代码运行良好。在下一次尝试中,我尝试

 f(x) = b + m*x
 fit f(x) "xyMSD-all-mal-cel-iso-bcm-thermo2.dat" using (log($1)):(log($2)) via m,b
上面的工作也很好。我得到斜率值。然后我试着选择下面的xrange。这就是我的问题所在。它不起作用

 fit [500:5000] f(x) "xyMSD-all-mal-cel-iso-bcm-thermo2.dat" using (log($1)):(log($2)) via m,b
有没有办法做到这一点?
感谢所有帮助

范围必须适合表达式,在您的情况下,表达式是日志值。因此,请确保日志值在范围内。例如,如果
($1):($2)
的范围是
[500:5000]
,那么
(log($1)):(log($2))
的相应范围应该类似于
[2.69:3.69]
Gnuplot首先在数据上使用表达式。限制范围是第二步,因此在这种情况下,所需数据点的对数必须在
xrange

别忘了:
logscale
使用基于10的对数,但
log(x)
log($1)
表示基于“e”的对数(约2.7183)。要与
logscale
协调,请使用函数
log10(x)
(或
log(x)/log(10)


PS:我知道原来的问题以前已经回答过了,但是我没有足够的威望将我关于
log()
函数的有用评论作为评论附加在后面。

“它不起作用”--什么不起作用?gnuplot是否给您一个错误?如果是,那是什么?意味着我无法在指定范围内进行拟合。例如,x的范围为[30000:50000]。当我执行脚本时,我收到错误消息{读取9999点跳过9999点超出范围[x=30000:50000]没有要拟合的数据}