如何限制gnuplot的自动缩放,以至于y-max为例,它至少是某个值,它会自动缩放到固定的“极限”?Gnuplot自动缩放的最小和最大边界
从查看文档,我只看到如何修复轴的最小值或最大值,而另一个自动缩放。
About autoscaling on PDF page 93
如何限制gnuplot的自动缩放,以至于y-max为例,它至少是某个值,它会自动缩放到固定的“极限”?Gnuplot自动缩放的最小和最大边界
从查看文档,我只看到如何修复轴的最小值或最大值,而另一个自动缩放。
About autoscaling on PDF page 93
自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 [ * : ]
分别。
所以它看起来确实是这样,而不是我能够找到它。似乎我必须使用数据手动缩放 – varesa
在这种情况下,您可以过滤数据,让gnuplot的做到这一点是正常的自动缩放:
set yrange [*:*]
plot 'mydatafile' u 1:(($2 >= YMIN && $2 <= YMAX) ? $2 : 1/0)
这几乎是我所做的(但在gnuplot之外)。对不起,如果我读错了代码,但是遗漏了YMIN以下的每个值?你可能会误解我想要的东西(例如Ymin = 0,Ymax = 100-1000)。我通过添加单点数据来解决这个问题,并在YMIN处添加背景颜色(因此它是不可见的)。这给了我想要的效果。 – varesa
@varesa - 如果你使用的是gnuplot 4.6,还有'stats'命令,你可以将上面的过滤器和gnuplot定义的变量配对:'GPVAL_YMIN'和'GPVAL_XMIN',但现在我们开始稍微复杂一点。然而,“看不见”的观点却是一个有趣的想法 - 我喜欢它。 – mgilson
@mgilson Gnuplot 4.6在自动缩放中添加了这样的上下限的新语法,如'set xrange [0:100 <* <1000]'。 – Christoph
由于人们似乎有意在这个问题上,我将添加我解决了这个结合的方式一个答案:
我通过在数据的开头插入一个不可见标记来使自动缩放的最小值。这导致情节总是“展示”它,即使它不能被看见。
然后我在一个解析器脚本中实现了gnuplot的最大外部(也可能在它内部可能,看看mgilson的答案),我已经用它来准备gnuplot的数据。
实际上,在脚本中,我将所有“剪切”值添加到y = 0,并将它们设为红色。这样我就会得到一个“警告”,值太大而不适合绘制。 (我的程序监视两个主机之间的ping,并且没有意义尝试绘制5s +延迟=>我将其标记为连接断开)
你能说清楚自动缩放是什么意思吗?您是否想将ymax设置为某个值,或者您是否想要调整数据以使其最大值具有某个值? – andyras
@andyras ymax的示例:ymax的最小值可以是100,最大值是1000.如果最高数据点是50,那么ymax将是100.它将自动调整为最大值为1000的值。之后,值将被切除。 – varesa