Ответ 1
Хотя это было бы полезно для функций (x, f (x)), обратите внимание, что gnuplot также может отображать параметрические функции, а также 2D и 3D поверхности, поэтому эта функциональность будет иметь ограниченное применение. Также обратите внимание, что вы уже можете выводить таблицы с set table
и выводить значения на консоль с помощью for
и print
.
Если вам нужна интерактивность, вот MWE, которая выводит пары (x, f (x)) в соответствии с позицией указателя мыши 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