gnuplot:在交互模式下设置link和x2tics

gnuplot:在交互模式下设置link和x2tics,gnuplot,Gnuplot,在交互模式下,放大时x2tics将很快消失 这个例子已经展示出来了 我希望至少有一个方向,并且不关心x2tic是等距放置还是从xtics映射 手动set x2tics 1可以提供很好的静态结果 但对于交互模式有解决方案吗 编辑: 这种笨拙的可能性要求每次按“a”更新绘图: bind a "set x2tics (GPVAL_X2_MAX-GPVAL_X2_MIN)/5; replot" 或更圆一点的台阶(1,2,5) 绑定一个“dx2=(GPVAL\u X2\u MAX-GPVAL\u X

在交互模式下,放大时x2tics将很快消失

这个例子已经展示出来了

我希望至少有一个方向,并且不关心x2tic是等距放置还是从xtics映射

手动
set x2tics 1
可以提供很好的静态结果

但对于交互模式有解决方案吗

编辑:

这种笨拙的可能性要求每次按“a”更新绘图:

bind a "set x2tics (GPVAL_X2_MAX-GPVAL_X2_MIN)/5; replot"
或更圆一点的台阶(1,2,5)

绑定一个“dx2=(GPVAL\u X2\u MAX-GPVAL\u X2\u MIN)/5\
i10=10**层(log10(dx2))\
f10=dx2/i10\

设置x2tics i10*(f10可以使用一个虚拟函数,该函数对新位置进行动态采样,并使用
x2ticlabels
说明符(请参见
help xticlabels

对于矩形缩放,这仍然需要一个
replot
事件,而对于滚轮缩放,它工作平稳

bind a "set x2tics (GPVAL_X2_MAX-GPVAL_X2_MIN)/5; replot"
bind a "dx2 = (GPVAL_X2_MAX-GPVAL_X2_MIN) / 5;\
        i10 = 10 ** floor(log10(dx2));\
        f10 = dx2 / i10;\
        set x2tics i10*(f10<1.5?1:f10<4?2:5);\
        replot"
set tics nomirror
set x2tics
set link x2
plot sin(x)  # to preset GPVAL_X_MIN and GPVAL_X_MAX
plot sin(x), [t=GPVAL_X_MIN:GPVAL_X_MAX:(GPVAL_X_MAX-GPVAL_X_MIN)/5] "+" us (t):(NaN):x2tic(sprintf("%g",sqrt(t)))