"set link y" 禁用范围自动扩展

range autoextend disabled by "set link y"

一旦我使用 set link y2,y 轴的自动扩展(缩放到下一个完整的抽动)就会被禁用。

我想要在 y 轴的两侧都有标签。在 5.2 中,我只是 set y2tics 而已。在 5.4 中它对我不起作用。谷歌搜索后我明白这可能有效也可能无效,不是“干净的”。 “干净”的方式是 set link y2 ,这样双方就绑定在一起了。不错,效果不错。

但这会破坏自动扩展,所以我的绘图就像在适合模式下绘制的一样,并坚持顶部和底部边框。虽然这不是很重要,但当自动扩展处于活动状态时,图表仍然“看起来更好”。我试图明确地将其设置为打开,不可用。

一个很简单的例子就是画sin(x)*1.1。使用自动扩展,y 比例将达到 -1.5/+1.5,没有自动扩展,它被限制在 -1.1/1.1

set link y2
plot sin(x)*1.1

我错过了什么吗?任何解决方法?

我遇到的行为与您描述的行为相同。

为了在不设置 link y2 的情况下获得 y2 抽动,您可以使用

set y2range [GPVAL_Y_MIN:GPVAL_Y_MAX]

在重新绘制之前或在将确定 GPVAL_Y_MINGPVAL_Y_MAXstats 命令之后。

我不确定这是否是错误,但解决该问题的一种方法是指定您希望在图的 y 范围下方 and/or 以上 space 空白:

set link y2
set offset 0,0,.1,.1
plot sin(x)*1.1

另一种解决方法是将函数绘制两次(好吧,不太好),一次与轴 x1 和 y1 相关,第二次(“不可见”lt -2)与轴 x1 相关和 y2。检查 help axes。这将在这个简单的示例中起作用,但在更复杂的图中可能会变得乏味。

代码:

### workaround for missing autoextend with linked axis
reset session

f(x) = sin(x)*1.1

set y2tics

plot f(x) axis x1y1 lc "red", \
     f(x) axis x1y2 lt -2 notitle
### end of code

结果: