我正在寻找一种方法来将自定义命令加载到我的gnuplot会话中。经常在玩一个情节之后我想把它输出到PDF,然后继续工作。这看起来像是:
set terminal pdf
set output 'somefilename.pdf'
replot
set terminal qt
replot
目前我能做的最好的事情就是把它放在一个单独的文件中,文件名是变量而不是字符串,在我的会话中定义所述变量,然后加载所述文件。我想知道我是否可以将此脚本作为带参数的命令加载,所以我可以做类似的事情
exportpdf "myfile.pdf"
答案 0 :(得分:2)
我认为你现在的方法已经相当不错了,但是如果你想要的话你可以稍微调整一下:
如果您愿意继续将文件名存储在gnuplot变量FILENAME中,那么您可以通过使用宏来避免使用外部文件:
exportpdf="set term push; set term pdf; set output FILENAME; replot; set output; set term pop"
然后,您可以通过执行
来保存当前数字@exportpdf
如果要将文件名作为参数,可以创建脚本文件exportpdf.gp
set term push
set term pdf
set output ARG1
replot
set output
set term pop
并定义字符串
exportpdf='call "exportpdf.gp"'
例如在您的启动文件中。然后,您只需执行
即可将当前数字保存到文件名@exportpdf "filename.pdf"
答案 1 :(得分:1)
如果要定义自定义"函数",您可以先构造相应的命令,然后SELECT
a.Id, a.AccountId, a.AccountName,
SUM(CASE WHEN b.TransDate < c.DateFrom THEN b.Value END) AS FirstVal,
SUM(CASE WHEN b.TransDate BETWEEN c.DateFrom AND c.DateTo THEN b.Value END) AS BetweenVal,
SUM(CASE WHEN b.TransDate > c.DateTo THEN b.Value END) AS LastVal,
FROM
dbo.Accounts AS a
LEFT OUTER JOIN
dbo.AccTransD AS b ON a.AccountId = b.AccountId
LEFT OUTER JOIN
dbo.AccountsSupport AS c ON TRUE
GROUP BY
a.Id, a.AccountId, a.AccountName, c.Id
ORDER BY
a.Id
使用它:
eval
然后可以方便地将此定义放在Gnuplot启动脚本中,以便它自动可用