如果在gnuplot中输入plot(x**2),并获得此函数的图,那么在图的左下角,我可以看到与鼠标指针位置对应的坐标。
我想知道的是,是否有一种方法可以将指针“捕捉”到函数的图形(或者更确切地说,是显示其坐标的十字光标,使它们与鼠标指针共享相同的x坐标)。
最终的效果是,当我沿着绘图从左向右移动鼠标时,与指针具有相同x值的十字光标将直接显示在函数的图形上,并且该十字光标的当前坐标将打印在某个地方(例如,在绘图的左下角)。换句话说,对于某个x值,打印的十字准线坐标始终是(x,f(x))。
发布于 2013-09-20 05:48:21
虽然这对于函数(x,f(x))很有用,但请注意,gnuplot还可以绘制参数函数以及2D和3D曲面,因此此功能的使用将是有限的。还要注意,您已经可以使用set table输出表,并使用for和print将输出值输出到控制台。
如果你确实需要交互,这里有一个MWE,如果你点击屏幕,它会根据鼠标指针X的位置输出成对的(x,f(x)),作为屏幕上的标签,以及通过打印到控制台(根据需要删除)。
#!/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 mousehttps://stackoverflow.com/questions/14615021
复制相似问题