2013-01-11 22 views
12

我在Gnuplot上绘制一组数据,并且想要在同一图上叠加功能x^2。我能做到这一点,像这样:限制绘制在Gnuplot上的函数的域

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 

的文件似乎在实现这个目标时很难解释。

回答

19

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

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 
+0

但这分段函数示出了不连续离子情节!你知道如何删除它吗?感谢wey发布的答案。 –

+0

我不确定你的意思是不连贯的情节。当我绘制f(x)时,我得到x^2从1到2,按照顺序。你能否澄清这个问题? – andyras

+0

@andyas感谢您的快速回复!我的意思是从0跳到下一个值,因为这个函数不是分段连续的。干杯 –