我绘制了一个图表,我想将ytics显示为x的函数。例如: 我绘制x ^ 2并且我想向ytics展示0,1,4,9 ....有没有办法自动执行此操作,或者我必须手动设置y轴的每个tic?我在定义ytics时试图设置一个函数,但是gnuplot不接受它。 谢谢你的帮助
答案 0 :(得分:2)
您可以使用for
循环。当然,在这里你需要提前知道你的x范围:
f(x)=x**2
set ytics ( sprintf('%f',f(-10)) f(-10) )
set for [i=-9:10] ytics add ( sprintf('%f',f(i)) f(i) )
plot f(x)
答案 1 :(得分:0)
这是我的半自动答案,使用for循环来构建ytics字符串:
#!/usr/bin/env gnuplot
set terminal pngcairo
set output 'test.png'
# x range
xmin = 0
xmax = 10
set xrange [xmin:xmax]
# define function of x to make plot, define tics
yfn(x) = x**2
# integer counting over tic positions
imin = int(xmin)
imax = int(xmax)
# build tics string
tix = '("'.sprintf('%d', yfn(imin)).'" '.sprintf('%d', yfn(imin))
do for [i=(imin+1):imax] {
tix = tix.', "'.sprintf('%d', yfn(i)).'" '.sprintf('%d', yfn(i))
}
tix = tix.')'
set macros
# set ytics using macro expansion
set ytics @tix
plot yfn(x)
结果如下: