14

我正在 Gnuplot 上绘制一组数据,并希望将函数叠加在x^2同一个图上。我可以这样做:

plot "filename" using 1:2, x**2

这会产生一个图,其中函数x^2延伸到图的整个域。我想让函数只显示在图形的一小部分上,比如从 x=1 到 x=2,而图形的大小filename由 x=0 到 x=10决定. 我知道要自己绘制函数,我可以这样做:

plot [1:2] x**2

但是,鉴于我凭直觉尝试的方法不起作用,我将如何将叠加保持在一起:

plot "filename" using 1:2, [1:2] x**2

invalid expression

当涉及到使其工作时,文档似乎很难解释。

4

2 回答 2

20

最简单的方法可能是使用三元运算符定义分段函数?

f(x) = (x > 1 && x < 2) ? x**2 : 1/0
plot "filename" using 1:2, f(x)

另一种方法是使用replot命令:

plot "filename" using 1:2
replot [1:2] x**2
于 2013-01-11T02:28:30.823 回答
6

我知道这是一个老问题,但对于任何可能正在寻找更简单方法的人来说:

你的第一个想法

plot "filename" using 1:2, [1:2] x**2

现在工作。

于 2018-09-06T18:20:27.550 回答