4
plot x+3 , x**2+5*x+12 

是否可以设置x+3为只有 2 个样本并x**2+5*x+12在同一个图中设置 1000 个样本?

4

1 回答 1

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

我在这里所做的是:

  1. 使用特殊文件名+在当前xrange. 这必须设置,不能自动缩放。
  2. 通过给它们赋值来跳过除第一个和最后一个之外的所有点是1/0行不通的,因为剩下的两个点没有连接。
  3. 所以我存储第一个x值(when$0column(0)equals 0)并在遇到倒数第二个点时使用它。对于最后一点,使用通常的值。

这适用于您的特殊2样品情况。

您必须记住,第一个函数被视为数据,因此您必须同时使用set style dataand set style func(只是为了显示它)。

4.6.4 的结果是:

在此处输入图像描述

于 2013-10-22T19:21:23.103 回答