虽然这对函数 (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 mouse