2013-01-11 47 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跳到下一個值,因爲這個函數不是分段連續的。乾杯 –