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