如何在 gnuplot 中合并父脚本的子脚本输出?
How to combine the output of child scripts from the parent script in gnuplot?
我有一个父 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_s
和 there_is_p
是我之前在父脚本中定义的条件。
我的子脚本 child.gplot
是:
set terminal postscript
set output "child".ARG1.".eps"
#plot graph here
我基本上希望将子脚本的 2 个图形合并到一个 .eps
文件中,每页一个,同时使用此方法创建 5 个不同的图 child1.eps
等
我尝试删除子脚本中将终端设置为后记的选项,但这只给我一个对应于 child0.eps
的单一图形,而 child1.eps
无处可寻。感谢您的帮助!
一个 EPS 文件中不能有多个页面。 EPS 图形旨在包含在页面上,因此它们可能不包含用于结束一页并开始另一页的 PostScript 运算符 showpage
。
所以你要么需要按照 Wrzlpmft 的评论中的 URL 并创建一个 PostScript 文件而不是 EPS(假设 gnuplot 能够做到这一点,link 用于 PDF输出),或者您需要自己将 EPS 文件合并到 PostScript 程序中。
如果你想做后者,那么你需要从 EPS 文件中读取 DSC 评论(以 %% 开头的行),找到 BoundingBox 评论,在 EPS 之前插入请求的媒体大小的区域BoundingBox(使用 setpagedevice
运算符),如果左下角坐标不是 0,0(使用 translate
运算符),则将 EPS 内容转换到媒体上,并在后面放置一个 showpage
每股收益内容。然后对第二个 EPS 文件执行相同操作并将两个结果连接起来。
我有一个父 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_s
和 there_is_p
是我之前在父脚本中定义的条件。
我的子脚本 child.gplot
是:
set terminal postscript
set output "child".ARG1.".eps"
#plot graph here
我基本上希望将子脚本的 2 个图形合并到一个 .eps
文件中,每页一个,同时使用此方法创建 5 个不同的图 child1.eps
等
我尝试删除子脚本中将终端设置为后记的选项,但这只给我一个对应于 child0.eps
的单一图形,而 child1.eps
无处可寻。感谢您的帮助!
一个 EPS 文件中不能有多个页面。 EPS 图形旨在包含在页面上,因此它们可能不包含用于结束一页并开始另一页的 PostScript 运算符 showpage
。
所以你要么需要按照 Wrzlpmft 的评论中的 URL 并创建一个 PostScript 文件而不是 EPS(假设 gnuplot 能够做到这一点,link 用于 PDF输出),或者您需要自己将 EPS 文件合并到 PostScript 程序中。
如果你想做后者,那么你需要从 EPS 文件中读取 DSC 评论(以 %% 开头的行),找到 BoundingBox 评论,在 EPS 之前插入请求的媒体大小的区域BoundingBox(使用 setpagedevice
运算符),如果左下角坐标不是 0,0(使用 translate
运算符),则将 EPS 内容转换到媒体上,并在后面放置一个 showpage
每股收益内容。然后对第二个 EPS 文件执行相同操作并将两个结果连接起来。