0
我绘制了一个图,我想将ytics显示为x的函数。例如: 我绘制x^2,我想为0,1,4,9 ...显示ytics。有没有办法自动做到这一点,或者我必须手动设置y轴的每一个tic?我在定义ytics时试图设置一个函数,但gnuplot不接受它。 感谢您的任何帮助gnuplot中ytics的增量
我绘制了一个图,我想将ytics显示为x的函数。例如: 我绘制x^2,我想为0,1,4,9 ...显示ytics。有没有办法自动做到这一点,或者我必须手动设置y轴的每一个tic?我在定义ytics时试图设置一个函数,但gnuplot不接受它。 感谢您的任何帮助gnuplot中ytics的增量
您可以使用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)
这里是我的半自动的答案,使用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)
这是结果:
你刚刚打败了我!更紧凑的方式也是如此。我不知道'add'字符串命令。 – andyras 2013-02-13 16:11:44
@andyras - 与[今天早上我回答的另一个]非常相似(http://stackoverflow.com/a/14847447/748858)。 – mgilson 2013-02-13 19:14:03
非常感谢!这正是我正在寻找的!谢谢!!! – Paoligno90 2013-02-14 00:01:06