如何访问Gnuplot';s(自动)范围值并修改它们以添加一些边距?

如何访问Gnuplot';s(自动)范围值并修改它们以添加一些边距?,gnuplot,Gnuplot,使用标准plot命令,我得到了我想要的,除了yrange被自动设置为从(例如)275到300 不幸的是,我有几个y坐标为300的数据点,因此它们不可见(由于边界线等原因) 那么,有没有办法设置最大yrange,使其始终是最大数据加上例如5个单位 使用autoscale,yrange设置为275:300。明确地将范围设置为275:305将适用于一个数据文件,但不适用于其他数据文件。因此,我需要一些通用方法来确定最大数据点,并将yrange设置得更大。设置偏移, set offsets <le

使用标准plot命令,我得到了我想要的,除了
yrange
被自动设置为从(例如)275到300

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

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

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

设置偏移,
set offsets <left>, <right>, <top>, <bottom>

行。请注意,比例遵循数据比例,因此最终将取决于要绘制的数据。或者,您可以使用
set offset graph…
来使用绘图大小的分数。

有Gnuplot定义的值
GPVAL_Y_MAX
GPVAL_DATA_Y_MAX
(还有
GPVAL_Y_MIN
GPVAL_DATA_Y_MIN
)。绘图后,最大值将存储在这些值中。因此,您可以绘制数据,然后
设置Y范围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. 重置 绘制“data.dat”u 1:2,以获得最大值和最小值 MAX=GPVAL\u Y\u MAX 最小值=GPVAL_Y_最小值 设置Y范围[MIN-(MAX-MIN)*0.05:MAX+(MAX-MIN)*0.05] #添加固定值不是一个好主意,所以我使用相对值 设置术语png 设置输出“out.png” 绘图“data.dat”u 1:2 w p notitle#此绘图将创建一个文件 #命名为out.png,这是您想要的。
我从这篇文章中学到了这个方法--

设置偏移量图0,0,0.05,0.05
也会做同样的事情。似乎没有任何方法“获取”默认范围或在设置后“获取”默认范围。对于我来说,能够恢复当前的范围,而不让gnuplot脚本因为需要跟踪的额外代码而变得混乱,这将是非常有用的。很明显,范围数据是存在的,因为例如“show xrange”会显示范围数据。为什么我不能在脚本中直接访问该数据?(或者我只是不知道怎么做?)。特别有用,因为在线使用
GPVAL\u Y\u MAX
方法,它还可以与
设置多点…
一起使用。