为什么在 gnuplot 启动后终端大小未定义?

Why is terminal size undefined after gnuplot startup?

gnuplot(控制台)启动后,即使没有指定终端和 canvas 大小,也定义了默认值,在我的例子中是 wxt640,384.

没有绘制任何东西,如果我在控制台中输入或在脚本中使用:

print GPVAL_TERM_XSIZE, GPVAL_TERM_YSIZE

我会得到一个错误:

undefined variable: GPVAL_TERM_XSIZE

我知道许多其他 GVPAL_... 变量取决于情节和数据本身。所以,很明显,只有在你绘制了一些东西的情况下,它们才会被定义。

但为什么GPVAL_TERM_XSIZEGPVAL_TERM_YSIZE有默认值,启动后却未定义? 即使我指定了一个大小,下面仍然会给出同样的错误:

set term wxt size 500,400
print GPVAL_TERM_XSIZE, GPVAL_TERM_YSIZE

我知道我可以(或者我必须)做一些虚拟绘图来初始化 GPVAL_TERM_XSIZEGPVAL_TERM_YSIZE 值。但为什么这是必要的? 谢谢你的解释。

在程序入口处,当前终端的名称(通常是默认终端,但您可能已在 ./gnuplot 中对其进行了更改)会打印到控制台。 但是终端直到第一个 plot 命令才真正打开。 这使您有时间在绘图之前更改终端或设置不同的终端属性。首次打开终端时,它会填写各种 GPVAL_TERM 值,包括其当前大小。

GPVAL_* 程序变量在每个绘图命令后更新。那些依赖于最近情节的那些,包括所有 GPVAL_TERM_* 变量,直到第一个情节之后才存在。