Gnuplot - 使用png终端和replot命令

14

我正尝试在Gnuplot中使用PNG终端来使用replot。

如果我按照以下方式操作,则可以将两个图形绘制到同一张图中,没有任何问题:

plot sin(x)/x
replot sin(x)

现在,如果为PNG终端类型执行相同的操作,生成的PNG文件仅包含第一个图。

set terminal png
set output 'file.png'
plot sin(x)/x
replot sin(x)

我在结尾是否漏掉了什么来获得我的PNG文件中的第二张图?

1个回答

18

这实际上是一个非常好的问题,其行为取决于终端。一些终端(例如PostScript)会在每个replot后给您一个新页面。您有几种解决方案...

第一个选项:您可以在设置终端/输出之前创建绘图,然后在设置终端/输出之后再重新绘制:

plot sin(x)/x
replot sin(x)
set terminal png
set output 'file.png
replot

如果你想在多个终端上绘制相同的图形,那么这个选项有时很方便,但我很少用它来做其他事情。

第二种(更好的)选择:您可以将多个绘图打包到一个命令中,每个命令之间用逗号分隔。

set terminal png
set output 'file.png'
plot sin(x)/x, sin(x)

我非常喜欢第二种方式——在多图环境中,这是将多个图形放在同一图中的唯一方法。如果您有非常长的函数要绘制,可以使用gnuplot的行续延(在行末使用\)。 \后面不能有任何内容,即使是空格也不行。

plot sin(x)/x with lines linecolor rgb "blue" linetype 7 lineweight 4, \
     sin(x),                                                           \
     cos(x)

2
谢谢。这些命令将从脚本发送。我可以使用第一种选项,在之前执行“set terminal unknown”以避免弹出窗口。第二个选项对我所需的有点复杂。我真的需要“replot”的方式。 - Noel
1
@Noel -- 没问题。很高兴能帮忙。另外一个要注意的是第二个解决方案会稍微更有效率一些。我也很开心你学到了关于“unknown”终端的知识。这是 gnuplot 中大多数人不知道的一个巧妙的角落。祝你好运! - mgilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接