如何获取标尺位置以自定义mouseformat的鼠标显示格式?
解决gnuplot鼠标格式中获取标尺位置的问题
gnuplot没有直接在mouseformat函数中访问内置标尺位置的变量,但可以通过自定义变量结合鼠标事件脚本实现你要的相对坐标显示效果:
先定义全局变量存储自定义标尺的原点位置:
ruler_x = 0 ruler_y = 0绑定鼠标事件来更新这个原点位置,比如用右键点击设置原点:
bind mouse3 'ruler_x = GPVAL_MOUSE_X; ruler_y = GPVAL_MOUSE_Y'然后设置鼠标显示格式,使用自定义的标尺变量计算相对坐标:
set mouse mouseformat function sprintf("dx/dy=%g", (x - ruler_x)/(y - ruler_y))如果需要模拟拖动标尺更新原点的效果,可以绑定鼠标拖动事件:
bind mouse drag 'ruler_x = GPVAL_MOUSE_X; ruler_y = GPVAL_MOUSE_Y'
这样移动鼠标时,就会显示当前位置相对于你设置的自定义标尺原点的坐标比值了。
内容的提问来源于stack exchange,提问作者bibi




