使GNUPLOT从shell

时间:2015-12-03 15:17:42

标签: gnuplot

使用某个程序(PersistenceLandscapes工具箱)我正在生成大量脚本,我使用gnuplot生成这些脚本。我遍历文件,并使用命令gnuplot gnuplotCommand.txt -p使gnuplot显示该图。如何让gnuplot以PNG或(最好)EPS格式保存图表? (我想避免干涉gnuplotCommand - 类型的脚本。)

3 个答案:

答案 0 :(得分:3)

您可以尝试像

这样的bash脚本
gnuplot <<- EOF
    set term png
    set output 'gnuplotCommand.txt.png'
    load 'gnuplotCommand.txt'
EOF

或.eps版本

gnuplot <<- EOF
    set terminal postscript eps
    set output 'gnuplotCommand.txt.eps'
    load 'gnuplotCommand.txt'
EOF

答案 1 :(得分:2)

最简单的解决方案是通过-e选项添加终端设置,并将标准输出管道传输到所需的输出文件:

gnuplot -e 'set term pngcairo' gnuplotCommand.txt > output.png

答案 2 :(得分:2)

如果你有gnuplot 5.0版,你可以将参数传递给你的脚本。例如,

# script.gp 
if (ARGC > 1) {
    set terminal ARG2
    set output ARG3

    print 'output file : ', ARG3, ' (', ARG2 , ')'
}

# load the script needed 
load ARG1

必须使用选项-c

调用此脚本
gnuplot -c script.gp gnuplotCommand.txt pngcairo output.png

在此示例中,我们设置了变量ARG1=gnuplotCommand.txtARG2=pncairoARG3=output.png。参数的数量为ARCG=3。此外,它已被设置为ARG0=script.gp作为主脚本的名称。

如果您只想查看输出而不将其保存到文件中,可以将此脚本称为:

gnuplot -p script.gp gnuplotCommand.txt

您可能想要检查用户是否为输出文件指定了名称。如果没有,我们可以使用默认名称:

if (ARGC > 1) {
    if (ARGC < 3) { ARG3="default" }    # without extension... it doesn't matter in linux :)
    set terminal ARG2
    set output ARG3

    print 'output file : ', ARG3, ' (', ARG2 , ')'
}