14

如何限制 gnuplot 的自动缩放,以便以 y-max 为例,它至少是一个特定值,并且它会自动缩放到固定的“限制”?

通过查看文档,我只看到如何修复轴的最小或最大端,而另一个是自动缩放的。

关于 PDF 第 93 页上的自动缩放

4

4 回答 4

20

自 4.6 版以来,gnuplot 提供了一种新语法来指定自动缩放的上限和下限。对于您的情况,您可以使用

set xrange [0:100 < * < 1000]

从文档中引用:

执行自动缩放的范围可能受到下限<lb>或上限<ub>或两者的限制。语法是

{ <lb> < } * { < <ub> }

例如

0 < * < 200

<lb> = 0<ub> = 200

该语法可以应用于 的最小值或最大值set *range

要自动缩放xmin但保持积极,请使用

set xrange [0<*:]

要自动缩放x但保持 10 到 50 的最小范围:

set xrange [*<10:50<*]

有关更多信息,请参阅有关文档set xrange

于 2013-12-11T11:36:16.800 回答
5

我认为这是不可能的,要么您在 no-、min- 或 max- 上进行自动缩放,要么在两个轴上进行自动缩放,即:

set yrange [FIXED_MIN : FIXED_MAX]
set yrange [        * : FIXED_MAX]
set yrange [FIXED_MIN :         *]
set yrange [        * :          ]

分别。

于 2012-06-29T23:27:42.243 回答
4

在这种情况下,您可以过滤数据并让 gnuplot 进行正常的自动缩放:

set yrange [*:*]
plot 'mydatafile' u 1:(($2 >= YMIN && $2 <= YMAX) ? $2 : 1/0)
于 2012-06-30T17:27:43.037 回答
1

由于人们似乎对这个问题感兴趣,我将添加我解决这个问题的方式作为答案:

我通过在数据的开头插入一个不可见的标记来最小化自动缩放。这导致情节总是“显示”它,即使它看不到。

然后我在用于为 gnuplot 准备数据的解析器脚本中实现了 gnuplot 之外的最大值(可能在其中也有可能,看看mgilson 的答案)。

实际上,在脚本中,我将所有“剪掉”的值添加到 y=0 中,并将它们设为红色。这样我得到一个“警告”,值太大而无法绘制图表。(我的程序监视两个主机之间的 ping,尝试绘制 5s+ 延迟是没有意义的 => 我将其标记为连接断开)

于 2013-04-01T07:23:30.163 回答