在gnuplot中增加ytics

时间:2013-02-13 15:10:28

标签: gnuplot

我绘制了一个图表,我想将ytics显示为x的函数。例如: 我绘制x ^ 2并且我想向ytics展示0,1,4,9 ....有没有办法自动执行此操作,或者我必须手动设置y轴的每个tic?我在定义ytics时试图设置一个函数,但是gnuplot不接受它。 谢谢你的帮助

2 个答案:

答案 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)

结果如下:

enter image description here