如何在gnuplot中调整automatic-tics-number?

问题描述 投票:0回答:2

gnuplot 自动选取相当好的 x/y 范围和 x/y-tics 数量(如图所示大约 5)很有帮助。

但是,我有时想增加/减少抽动的次数。

当然,改变抽动次数很容易。我想做的事情是,利用这个 gnuplot“自动抽动选择”的优势,但调整抽动的大约数量。有什么办法可以解决这个问题吗?

谢谢!

gnuplot
2个回答
4
投票

好的,现在我明白你的意思了。特别是在多重图中或当图形相对于抽动标签的大小变得较小时,抽动太多。

在下面找到似乎适用于演示案例的解决方法。如果它一直工作良好,您需要进行测试。缺点是您必须首先绘制到虚拟表,以获得 gnuplot 放入

GPVAL_...
变量中的范围,然后再次重新绘制。

在下图中,第一行是 gnuplot auto-tic,第二行是半自动近似 tic 的尝试。也许这是进一步调整的起点。

脚本:

### set approximate number of tics with "nice" intervals
reset session

round(n) = gprintf("%.0e",n)
# alternatively with less approximate tics: 
# round(n) = gprintf("%.0e",n) + sgn(n)*10**gprintf("%T",n)

approxTicsX(n) = round((GPVAL_X_MAX - GPVAL_X_MIN)/n)
approxTicsY(n) = round((GPVAL_Y_MAX - GPVAL_Y_MIN)/n)

set multiplot layout 2,3 rowsfirst

    ### with gnuplot auto-tics
    set xrange [-10:10]
    plot x

    set xrange [-100:100]
    plot x**2

    set xrange [-90:90]
    plot x

    ### now with semi-auto tics
    set style line 1 lc rgb "red"
    set xrange [-10:10]
    set table $Dummy
        plot x ls 1
    unset table
    set xtics approxTicsX(5)
    set ytics approxTicsY(5)
    replot

    set xrange [-100:100]
    set table $Dummy
        plot x**2 ls 1
    unset table
    set xtics approxTicsX(5)
    set ytics approxTicsY(5)
    replot

    set xrange [-90:90]
    set table $Dummy
        plot x ls 1
    unset table
    set xtics approxTicsX(5)
    set ytics approxTicsY(5)
    replot

unset multiplot
### end of script

结果:


0
投票

不确定我是否理解你的“当然,改变抽动次数很容易”,我也许我给出的答案你已经知道了 - 但无论如何:

来自

help set xics

默认情况下会自动计算抽动的位置,或者如果 给出了

autofreq
选项;否则它们可以在中指定 两种形式之一:

隐式 , , 形式指定一系列 抽动将绘制在值和之间的轴上 增量为 .如果没有给出,则假定 是无穷大。增量可能是负数。如果既不也不 给定,假设为负无穷大,是 假设为正无穷大,并且抽动将被绘制在 .

的整数倍

首先 - 您可以自己尝试设置:

set xtics -7, 1.5
plot[-7.5:7.5][] sin(x)

这给了你

© www.soinside.com 2019 - 2024. All rights reserved.