向gnuplot传递多个.gp文件,而不是重复传递一个文件

向gnuplot传递多个.gp文件,而不是重复传递一个文件,gnuplot,Gnuplot,使用gnuplot5.2 patchlevel 6和bash,在包含多个.gp文件的文件夹中,我以编程方式创建这些文件: 当我对第7个文件执行gnuplot*.gpgnuplot时,它告诉我需要使用spec for x time data完成并中止 当我在读取fn时执行ls*.gp |;dognuplot$fn;完成没有错误消息,所有绘图都已创建 所讨论的gnuplot命令是 plot $TimesData using 3:xtic(1) title "{/*0.6 Title 1}" lc r

使用
gnuplot
5.2 patchlevel 6和
bash
,在包含多个
.gp
文件的文件夹中,我以编程方式创建这些文件:

当我对第7个文件执行
gnuplot*.gp
gnuplot时,它告诉我
需要使用spec for x time data
完成并中止

当我在读取fn时执行
ls*.gp |;dognuplot$fn;完成
没有错误消息,所有绘图都已创建

所讨论的gnuplot命令是

plot $TimesData using 3:xtic(1) title "{/*0.6 Title 1}" lc rgb "#0000E0",\
     $TimesData using 4 title "{/*0.6 Title 2}" lc rgb "#00A000"

这种行为不应该是相同的吗?我遗漏了什么?

您调用gnuplot的方式不同,很可能会产生不同的结果

gnuplot*.gp
启动单个gnuplot会话,其中第一个文件中的所有命令都将执行,然后第二个文件中的所有命令将执行,依此类推。在执行第二个文件期间,第一个文件更改的任何设置仍与默认设置不同!根据脚本文件中的具体内容,可能会发生奇怪的干扰

ls*.gp |读取fn时;dognuplot$fn;完成
迭代所有文件并为每个文件启动新的gnuplot会话,使所有gnuplot调用彼此独立


因此,您的第二种方法是问题的正确解决方案,尽管您可以尝试将
重置会话
放在每个脚本文件的第一行,运行
gnuplot*.gp
,看看会发生什么。

我猜您提供的信息不足以轻松复制(即复制粘贴并运行代码)您的问题。何时以及如何定义/分配
$TimeData
?你确定这是第七个文件,或者可能是第二个文件,只有索引7?我怀疑第一次运行后,
$TimeData
没有定义。@theozh感谢您的建议。不确定你所说的文件索引是什么意思;这只是解释的第7个文件
$TimeData
当然是在同一个文件中定义的,否则当文件本身被保护时,
gnuplot
将产生错误。