plot x+3 , x**2+5*x+12
是否可以将x+3
设置为只有2个样本而x**2+5*x+12
可以在同一个图中说出1000个样本?
答案 0 :(得分:2)
可以做到,但不是开箱即用。
第一个版本使用临时文件以低采样率保存一个函数,稍后将其与高分辨率函数一起绘制:
set samples 2
set table 'tmp.dat'
plot x+3
unset table
set samples 1000
plot 'tmp.dat' w lp t 'x+3', x**2 + 5*x + 12
这样做的好处是,您可以对这两种功能使用任何采样率。
对于一个函数的2
样本的特殊情况,它可以在没有外部文件的情况下完成,但它涉及一些欺骗:
set xrange [-10:10]
s = 1000
set samples s
f1(x) = x + 3
set style func linespoints
set style data linespoints
plot '+' using (x0 = (($0 == 0 || $0 == (s-1) )? $1 : x0), \
($0 < (s-2) ? 1/0 : x0)):(f1(x0)) t 'x+3',\
x**2 + 5*x + 12
我在这里做的是:
+
在当前xrange
中生成一组坐标。必须设置此项,不能进行自动缩放。1/0
来跳过所有点不起作用,因为剩余的两个点未连接。x
- 值(当$0
或column(0)
等于0
时)并在我遇到第二个最后一点时使用它。对于最后几点,使用了通常的值。适用于2
样本的特殊情况。
您必须记住,第一个功能被视为数据,因此您必须同时使用set style data
和set style func
(仅显示它)。
4.6.4的结果是: