Gnuplot:如何加载自定义命令?

Gnuplot:如何加载自定义命令?,gnuplot,Gnuplot,我正在寻找一种将自定义命令加载到gnuplot会话的方法。通常在玩了一个绘图之后,我想把它输出到PDF,然后继续工作。这将看起来像: set terminal pdf set output 'somefilename.pdf' replot set terminal qt replot 目前,我所能做的最好的事情是将变量而不是字符串放在一个单独的文件名中,在会话中定义所述变量,然后加载所述文件。我想知道我是否可以把这个脚本作为一个带参数的命令加载,这样我就可以像 exportpdf "my

我正在寻找一种将自定义命令加载到gnuplot会话的方法。通常在玩了一个绘图之后,我想把它输出到PDF,然后继续工作。这将看起来像:

set terminal pdf
set output   'somefilename.pdf'
replot
set terminal qt
replot
目前,我所能做的最好的事情是将变量而不是字符串放在一个单独的文件名中,在会话中定义所述变量,然后加载所述文件。我想知道我是否可以把这个脚本作为一个带参数的命令加载,这样我就可以像

exportpdf "myfile.pdf"

如果要定义自定义函数,可以先构造适当的命令,然后对其求值:


然后可以方便地将此定义放置在Gnuplot启动脚本中,以便它自动可用

我认为您当前的方法已经很好了,但是如果您愿意,可以对其进行微调:

如果您愿意继续将文件名存储在gnuplot变量FILENAME中,则可以使用宏绕过外部文件的需要:

exportpdf="set term push; set term pdf; set output FILENAME; replot; set output; set term pop"
然后,您可以通过执行

@exportpdf
@exportpdf "filename.pdf"
如果要将文件名作为参数,可以创建脚本文件exportpdf.gp

并定义字符串

exportpdf='call "exportpdf.gp"'
例如,在启动文件中。然后,只需执行以下命令,即可将当前图形保存到文件名

@exportpdf
@exportpdf "filename.pdf"

您可以定义在启动时加载的自定义命令-@ewcz在哪里说明如何定义自定义命令?at init部分不太重要。我在尝试plotPdf no arguments、plotPdf'something'或plotPdf'something'时收到无效命令。如果有问题,我是GnuPlot版本5.0修补程序级别5。@kabanus,您是否可以尝试直接执行set terminal pdf;设置输出“%s”;雷普特;设置终端qt;雷普特;将%s替换为您以前尝试过的参数?只是看看哪个部分失败了…我不清楚-错误是plotPdf本身无效。你的线路本身很好。我试着打印plotPdf'abc',但随后它抱怨eval不是一个函数,尽管它在直接输入命令行evalsprintfset terminal pdf时工作正常;设置输出“%s”;雷普特;设置终端qt;replot;,'abc'直接工作。x=evalsprintfset终端pdf;设置输出“%s”;雷普特;设置终端qt;replot;,'abc’;投诉x是无效命令,但x=evalsprintfset terminal pdf;设置输出“%s”;雷普特;设置终端qt;replot;,'abc’;抱怨eval是一个未定义的函数。