如何结合gnuplot中父脚本的子脚本输出?

时间:2018-01-13 21:52:43

标签: gnuplot postscript

我有一个父gnuplot脚本,根据特定条件调用子gnuplot脚本。我想将子脚本的输出图组合成一个.eps文件。我该怎么做呢?

例如,我的父脚本是:

set terminal postscript
set output "combined.eps"    
if (there_is_s == 1) call "child.gplot" "0"
if (there_is_p == 1) call "child.gplot" "1"

there_is_sthere_is_p是我之前在父脚本中定义的条件。

我的孩子脚本child.gplot是:

set terminal postscript
set output "child".ARG1.".eps"
#plot graph here

我基本上希望将子脚本的2个图形组合成一个合并的.eps文件,每页一个,同时使用此方法创建5个不同的图child1.eps等。

我尝试删除在子脚本中将terminal设置为postscript的选项,但这只是给了我一个与child0.eps对应的图表,而child1.eps无处可寻。谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

EPS文件中不能有多个页面。 EPS图形旨在包含在页面上,因此它们可能不包含用于结束一个页面并启动另一个页面的PostScript操作符showpage

所以你需要按照Wrzlpmft注释中的URL并创建一个PostScript文件而不是EPS(假设gnuplot能够做到这一点,链接用于PDF输出),或者你需要结合EPS将自己归入PostScript程序。

如果你想做后者,那么你需要从EPS文件(开始%%的行)中读取DSC注释,找到BoundingBox注释,在EPS之前插入BoundingBox区域所需的媒体大小(使用setpagedevice运算符),如果左下坐标不是0,0(使用translate运算符),则将EPS内容转换为媒体,并在EPS之后放置showpage内容。然后对第二个EPS文件执行相同操作并连接两个结果。