在gnuplot脚本中,如何访问范围
我在gnuplot会话中调用了一个函数,并且想知道范围,以及这个函数中是否使用了logscale。怎么做? 多谢各位在gnuplot脚本中,如何访问范围,gnuplot,Gnuplot,我在gnuplot会话中调用了一个函数,并且想知道范围,以及这个函数中是否使用了logscale。怎么做? 多谢各位 gnuplot> load 'myfunction.gnu' 文件myfunction.gnu: if "logscale" {do this};else {do that} 部分解决方案如下所示。假设主脚本如下所示: set logscale x set xr [10:100] load 'my_function.gpl' 然后在my_function.gpl中,
gnuplot> load 'myfunction.gnu'
文件myfunction.gnu
:
if "logscale" {do this};else {do that}
部分解决方案如下所示。假设主脚本如下所示:
set logscale x
set xr [10:100]
load 'my_function.gpl'
然后在my_function.gpl
中,您可以执行以下操作:
set terminal push
set terminal unknown
plot 1
isLogScale = (GPVAL_X_LOG > 0)?1:0
xMin = GPVAL_X_MIN
xMax = GPVAL_X_MAX
set terminal pop
if(isLogScale){
print "logscale"
}else{
print "..."
}
其想法是:
设置终端按钮保存当前终端
设置终端未知设置“假”终端
GPVAL\u X\u log
(如果未设置logscale
,则等于零)和GPVAL\u X\u MIN
,GPVAL\u X\u MAX
范围检查日志缩放set terminal pop
设置logscale x
将GPVAL_x_LOG
默认设置为10,但取消设置logscale
不会将其恢复为零,因此如果使用设置logscale x;取消设置logscale
,上面的代码段将无法正确处理此问题
我认为,更好的解决方案是在主脚本中引入自定义变量,如下所示:
useLogScale = 1
if(useLogScale){
set logscale x
}
set xr [10:100]
load 'my_function.gpl'
然后变量useLogScale
也可直接在my_function.gpl
中使用