如何限制gnuplot的自动缩放,以便作为y-max的示例,它至少是一个特定的值,它会自动调整到固定的“限制”?
通过查看文档,我只看到如何修复轴的最小值或最大值,而另一个是自动缩放的。
答案 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;我将其标记为连接断开)