如何限制 gnuplot 的自动缩放,以便以 y-max 为例,它至少是一个特定值,并且它会自动缩放到固定的“限制”?
通过查看文档,我只看到如何修复轴的最小或最大端,而另一个是自动缩放的。
如何限制 gnuplot 的自动缩放,以便以 y-max 为例,它至少是一个特定值,并且它会自动缩放到固定的“限制”?
通过查看文档,我只看到如何修复轴的最小或最大端,而另一个是自动缩放的。
自 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
。
我认为这是不可能的,要么您在 no-、min- 或 max- 上进行自动缩放,要么在两个轴上进行自动缩放,即:
set yrange [FIXED_MIN : FIXED_MAX]
set yrange [ * : FIXED_MAX]
set yrange [FIXED_MIN : *]
set yrange [ * : ]
分别。
在这种情况下,您可以过滤数据并让 gnuplot 进行正常的自动缩放:
set yrange [*:*]
plot 'mydatafile' u 1:(($2 >= YMIN && $2 <= YMAX) ? $2 : 1/0)
由于人们似乎对这个问题感兴趣,我将添加我解决这个问题的方式作为答案:
我通过在数据的开头插入一个不可见的标记来最小化自动缩放。这导致情节总是“显示”它,即使它看不到。
然后我在用于为 gnuplot 准备数据的解析器脚本中实现了 gnuplot 之外的最大值(可能在其中也有可能,看看mgilson 的答案)。
实际上,在脚本中,我将所有“剪掉”的值添加到 y=0 中,并将它们设为红色。这样我得到一个“警告”,值太大而无法绘制图表。(我的程序监视两个主机之间的 ping,尝试绘制 5s+ 延迟是没有意义的 => 我将其标记为连接断开)