在gnuplot中的logscale图中的xrange限制

时间:2013-04-08 12:18:52

标签: 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  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

有没有办法实现这个目标? 感谢任何帮助

2 个答案:

答案 0 :(得分:2)

范围必须符合表达式,在您的情况下,它是日志值。因此,请确保日志值在范围内。例如,如果($1):($2)的范围为[500:5000],则(log($1)):(log($2))的相应范围应为[2.69:3.69]

答案 1 :(得分:1)

Gnuplot首先在数据上使用表达式。限制范围是第二步,因此在这种情况下,所需数据点的对数必须在xrange中。

并且不要忘记: logscale使用基于10的对数,但log(x)log($1)表示基于'e'的logaritm(约2.7183) )。与logscale使用函数log10(x)(或log(x)/log(10))保持一致。

PS:我知道原来的问题之前已经得到了回答,但我没有足够的声望来附加我对log()函数的有用评论作为评论。