Gnuplot自动缩放的最小和最大边界

时间:2012-06-29 22:46:52

标签: plot gnuplot scaling autoscaling

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

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

About autoscaling on PDF page 93

4 个答案:

答案 0 :(得分:18)

从版本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的文档。

答案 1 :(得分:5)

我认为这是不可能的,要么你在无,最小或最大,或两个轴上进行自动缩放,例如:

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

分别

答案 2 :(得分:4)

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

set yrange [*:*]
plot 'mydatafile' u 1:(($2 >= YMIN && $2 <= YMAX) ? $2 : 1/0)

答案 3 :(得分:1)

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

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

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

实际上在脚本中我获取了所有“剪切”的值,将它们添加到y = 0,并使它们变为红色。这样我得到一个“警告”,价值太大而不能合理。 (我的程序监视两个主机之间的ping,并且没有意义尝试绘制5s +延迟=&gt;我将其标记为连接断开)