如何使gnuplot显示与鼠标指针具有相同x值的打印函数的坐标?

如何使gnuplot显示与鼠标指针具有相同x值的打印函数的坐标?,gnuplot,Gnuplot,如果在gnuplot中输入plot(x**2),并获得此函数的绘图,则在绘图的左下角,我可以看到与鼠标指针位置对应的坐标 我想知道的是,是否有一种方法可以“捕捉”指向函数图形的指针(或者更确切地说是显示坐标的十字光标,使它们与鼠标指针共享相同的x坐标) 最终的效果是,当我沿着绘图从左向右移动鼠标时,与指针具有相同x值的十字线将直接显示在函数的图形上,并且该十字线的当前坐标将打印在某处(例如,在绘图的左下角)。换句话说,对于某些x值,打印的十字线坐标始终为(x,f(x))。虽然这对函数(x,f(x

如果在gnuplot中输入
plot(x**2)
,并获得此函数的绘图,则在绘图的左下角,我可以看到与鼠标指针位置对应的坐标

我想知道的是,是否有一种方法可以“捕捉”指向函数图形的指针(或者更确切地说是显示坐标的十字光标,使它们与鼠标指针共享相同的x坐标)


最终的效果是,当我沿着绘图从左向右移动鼠标时,与指针具有相同x值的十字线将直接显示在函数的图形上,并且该十字线的当前坐标将打印在某处(例如,在绘图的左下角)。换句话说,对于某些x值,打印的十字线坐标始终为(x,f(x))。

虽然这对函数(x,f(x))很有用,但请注意,gnuplot还可以绘制参数化函数以及二维和三维曲面,因此此功能的使用有限。还请注意,您已经可以使用
set table
输出表格,并使用
for
print
将值输出到控制台

如果您确实需要交互性,这里有一个MWE,当您点击屏幕时,它会根据鼠标指针x的位置输出(x,f(x))对,作为屏幕上的标签,并通过打印到控制台(根据需要删除)


你用的是什么类型的终端?哦,那会很有用…从阅读文档来看,我很确定这是不可能的。。。然而,我认为你可以设置一个热键,当你点击一个按钮时,它会将图形标记在
x,f(x)
。你对此感兴趣吗?@mgilson-有一个标记一个点的热键当然很有趣,但这并不是我想要的。@mgilson如果可以用热键,鼠标移动时不能触发吗?
#!/usr/bin/gnuplot -persist

## this binds commands to the mouse click that uses the MOUSE_X variable
## to do what you want
bind all "Button1" \
  'result=sprintf("(x, f(x)) = (%g, %g)", \
  MOUSE_X, f(MOUSE_X)); \
  set label 1 result at graph 0.05, graph 0.05; \
  print result; replot'

f(x) = x**2

plot f(x)
## the pause is needed only to keep gnuplot running,
## so you see the print output
## the label works without the pause
pause mouse