如何访问Gnuplot的(自动)范围值并修改它们以增加一些余量?

时间:2011-09-07 07:17:31

标签: gnuplot

使用标准绘图命令,我得到了,我想要的是yrange自动设置(例如)275到300。

不幸的是,我有几个y坐标为300的数据点,因此它们不可见(由于边界线等)。

那么,有没有办法设置最大yrange,使其始终是最大数据加上,例如5个单位?

使用autoscaleyrange设置为275:300。将范围明确设置为275:305将适用于一个数据文件,但不适用于其他数据文件。所以我需要一些通用方法来确定最大数据点并将yrange设置得更大。

2 个答案:

答案 0 :(得分:23)

set offsets <left>, <right>, <top>, <bottom>

会做的。请注意,比例遵循数据比例,因此最终将取决于您要绘制的数据。或者,您可以使用set offsets graph ...来改变绘图大小的一部分。

答案 1 :(得分:11)

有Gnuplot定义的值GPVAL_Y_MAXGPVAL_DATA_Y_MAX(还有GPVAL_Y_MINGPVAL_DATA_Y_MIN ...)。绘图后,最大值将存储在这些值中。因此,您可以绘制数据,然后set yrange GPVAL_Y_MAX+(GPVAL_Y_MAX-GPVAL_Y_MIN)*0.05。此时,您第二次绘制数据。这次你得到你想要的东西。以下是我的代码。

    reset
    plot "data.dat" u 1:2 #To get the max and min value
    MAX=GPVAL_Y_MAX
    MIN=GPVAL_Y_MIN
    set yrange [MIN-(MAX-MIN)*0.05:MAX+(MAX-MIN)*0.05]
    #Add a fixed value is not a good idea, so I use a relative one
    set term png
    set output "out.png"
    plot "data.dat" u 1:2 w p notitle #This plot will create a file
    #named out.png which is waht you want.

我从这篇文章中学到了这个方法 - http://gnuplot-surprising.blogspot.com/2011/09/advanced-background-color-1.html