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

限制绘制在Gnuplot上的函数的域,gnuplot,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:

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

要使其正常工作,文档似乎很难解释。

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

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

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

你的第一个想法

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

现在可以工作了。

但是这个分段函数在绘图中显示了不连续性!你知道怎么去掉它吗?谢谢你在wey上发布的答案。我不知道你所说的情节中断是什么意思。当我绘制f(x)时,我得到了从1到2的x^2,按顺序。你能澄清这个问题吗?@andyas谢谢你的快速回复!我的意思是从0跳到下一个值,因为这个函数不是分段连续的。干杯你是说从1跳到第一个点(略高于1)?这是因为函数f(x)只在离散点采样。这些点数由
set sample
命令决定,这可能会有所帮助。非常感谢您的帮助:)干杯
plot "filename" using 1:2, [1:2] x**2