如何将 gnuplot 命令的输出保存到(字符串)变量中? 例如,我需要知道脚本中当前的 xdata 格式设置,但我不记得保存它的技巧。例如
gnuplot> show xdata
x is set to time
但是我如何保存或访问此状态? 我没有看到任何使此状态可用的
GP_VAL
变量,而且我确信还有其他状态,这些状态很难在脚本中访问。
非常感谢:-)
过去,我也希望可以将一些可以通过
show ...
显示的参数放入变量中。我不知道现在可以使用 gnuplot 轻松完成此操作,但也许将来?
据我了解您的问题,您想在脚本中找出
xdata
是否设置为 time
。如果您选中 help xdata
,则设置可以是 time
或 numeric
。
一种可能的解决方法:
save
将当前脚本保存到文本文件(检查help save
),显然您无法将其保存到数据块。xdata
是否设置为时间数据。如果将其设置为时间,则要查找的行为 set xdata time
,如果将其设置为数字,则该行仅为 set xdata
,这使得提取起来更加困难(也许有更简单的方法)。
该文件将如下所示:#
# G N U P L O T
# Version 6.0 patchlevel 0 last modified 2023-12-09
#
# Copyright (C) 1986-1993, 1998, 2004, 2007-2023
# Thomas Williams, Colin Kelley and many others
#
# gnuplot home: http://www.gnuplot.info
# faq, bugs, etc: type "help FAQ"
# immediate help: type "help" (plot window: hit 'h')
# set terminal qt 0 font "Sans,10"
# set output
unset clip points
set clip one
unset clip two
unset clip radial
set errorbars front 1.000000
set border 31 front lt black linewidth 1.000 dashtype solid
set cornerpoles
set zdata
set ydata
set xdata time
set y2data
set x2data
set boxwidth
set boxdepth 0
set style fill empty border
...
不幸的是,gnuplot 不是为解析而设计的,但你仍然可以做到。
脚本:(由于功能块,需要 gnuplot>=6.0)
### return setting for xdata
reset session
function $xdata(none) <<EOF
FILE = "Settings.txt"
save FILE
set table $Dummy
plot FILE u 0:(strcol(2) eq "xdata" ? \
XDATA=(strlen(' '.strcol(3))>3 ? "time" : "numeric") : 0) w table
unset table
return XDATA
EOF
set xdata
print $xdata(0)
set xdata time
print $xdata(0)
### end of script
结果:
numeric
time
脚本:(由于数据块,需要 gnuplot>=5.0.0)
### return setting for xdata
reset session
set xdata
FILE = "SO78723633.txt"
save FILE
set table $Dummy
plot FILE u 0:(strcol(2) eq "xdata" ? \
XDATA=(strlen(' '.strcol(3))>3 ? "time" : "numeric") : 0) w table
unset table
print XDATA
set xdata time
FILE = "SO78723633.txt"
save FILE
set table $Dummy
plot FILE u 0:(strcol(2) eq "xdata" ? \
XDATA=(strlen(' '.strcol(3))>3 ? "time" : "numeric") : 0) w table
unset table
print XDATA
### end of script
结果:
numeric
time