首页 > 解决方案 > 为什么 gnuplot 启动后终端大小未定义?

问题描述

在 gnuplot(控制台)启动后,即使没有指定终端和画布大小,也定义了默认值,在我的例子中wxt640,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_XSIZEGPVAL_TERM_YSIZE值。但为什么这是必要的?谢谢你的解释。

标签: gnuplot

解决方案


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

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


推荐阅读