为什么在 gnuplot 启动后终端大小未定义?
Why is terminal size undefined after gnuplot startup?
gnuplot(控制台)启动后,即使没有指定终端和 canvas 大小,也定义了默认值,在我的例子中是 wxt
和 640,384
.
没有绘制任何东西,如果我在控制台中输入或在脚本中使用:
print GPVAL_TERM_XSIZE, GPVAL_TERM_YSIZE
我会得到一个错误:
undefined variable: GPVAL_TERM_XSIZE
我知道许多其他 GVPAL_...
变量取决于情节和数据本身。所以,很明显,只有在你绘制了一些东西的情况下,它们才会被定义。
但为什么GPVAL_TERM_XSIZE
和GPVAL_TERM_YSIZE
有默认值,启动后却未定义?
即使我指定了一个大小,下面仍然会给出同样的错误:
set term wxt size 500,400
print GPVAL_TERM_XSIZE, GPVAL_TERM_YSIZE
我知道我可以(或者我必须)做一些虚拟绘图来初始化 GPVAL_TERM_XSIZE
和 GPVAL_TERM_YSIZE
值。但为什么这是必要的?
谢谢你的解释。
在程序入口处,当前终端的名称(通常是默认终端,但您可能已在 ./gnuplot 中对其进行了更改)会打印到控制台。
但是终端直到第一个 plot 命令才真正打开。
这使您有时间在绘图之前更改终端或设置不同的终端属性。首次打开终端时,它会填写各种 GPVAL_TERM 值,包括其当前大小。
GPVAL_* 程序变量在每个绘图命令后更新。那些依赖于最近情节的那些,包括所有 GPVAL_TERM_* 变量,直到第一个情节之后才存在。
gnuplot(控制台)启动后,即使没有指定终端和 canvas 大小,也定义了默认值,在我的例子中是 wxt
和 640,384
.
没有绘制任何东西,如果我在控制台中输入或在脚本中使用:
print GPVAL_TERM_XSIZE, GPVAL_TERM_YSIZE
我会得到一个错误:
undefined variable: GPVAL_TERM_XSIZE
我知道许多其他 GVPAL_...
变量取决于情节和数据本身。所以,很明显,只有在你绘制了一些东西的情况下,它们才会被定义。
但为什么GPVAL_TERM_XSIZE
和GPVAL_TERM_YSIZE
有默认值,启动后却未定义?
即使我指定了一个大小,下面仍然会给出同样的错误:
set term wxt size 500,400
print GPVAL_TERM_XSIZE, GPVAL_TERM_YSIZE
我知道我可以(或者我必须)做一些虚拟绘图来初始化 GPVAL_TERM_XSIZE
和 GPVAL_TERM_YSIZE
值。但为什么这是必要的?
谢谢你的解释。
在程序入口处,当前终端的名称(通常是默认终端,但您可能已在 ./gnuplot 中对其进行了更改)会打印到控制台。 但是终端直到第一个 plot 命令才真正打开。 这使您有时间在绘图之前更改终端或设置不同的终端属性。首次打开终端时,它会填写各种 GPVAL_TERM 值,包括其当前大小。
GPVAL_* 程序变量在每个绘图命令后更新。那些依赖于最近情节的那些,包括所有 GPVAL_TERM_* 变量,直到第一个情节之后才存在。