我试图用gnuplot绘制一些数据。我想使用静态script.gp文件并从stdin中提取我的数据。我还有多个数据集需要传递给脚本。
script.gp:
set term jpeg
set encoding utf8
plot '<cat' index 0 with lines, plot '' index 1 with lines
数据:
1 2
2 2
0 0
7 4
命令:
cat data | gnuplot script.gp
这不起作用,因为我猜它试图从stdin重新读取。有没有办法可以做到这一点,还是我必须使用临时文件来存储我的数据?
答案 0 :(得分:2)
到目前为止,我发现的解决方案有很多缺点,但它有点起作用:
使用&#39; gnuplot -e&#39;并将脚本文件写入命令:
cat data | gnuplot -e "$(cat script.gp)"
使用每行末尾的;
更改script.gp,删除所有注释并使用'-'
代替'<cat'
更改绘图命令并删除index
:< / p>
set term jpeg;
set encoding utf8;
plot '-' with lines, '-' with lines
更改数据格式,使用e
行
1 2
2 2
e
0 0
7 4
答案 1 :(得分:0)
我建议使用特殊文件'&lt;'它允许你调用php脚本,你可以使用你的gnuplot文件plot.gp
:
set term jpeg;
set encoding utf8;
set output file_out
my_cmd1=sprintf('< my_script %s', my_file1)
my_cmd2=sprintf('< my_script %s', my_file2)
plot my_cmd1 with lines, my_cmd2 with lines
你打电话给shell:
gnuplot -e 'my_file1="input1.txt"; my_file2="input2.txt"; file_out="my_out.jpg"' plot.gp