限制在Gnuplot上绘制的函数的域

时间:2013-01-11 02:09:15

标签: gnuplot

我在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

在实现这一目标时,文档似乎难以解释。

2 个答案:

答案 0 :(得分:18)

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

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

答案 1 :(得分:2)

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

您的第一个想法

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

现在可以工作。