我需要在一个窗口中绘制几条曲线。在bash shell中使用for循环我已经能够在单独的文件上绘制它们,但是在单张图片上绘制它们没有成功。如果您能指导我如何解决此问题,我将不胜感激。
我尝试在链接for loop inside gnuplot?中实施该示例,但它给出了一个错误说:':'预期。我安装了gnuplot 4.2。 谢谢,
#!/bin/bash
for Counter in {1..9}; do
FILE="dataFile"$Counter".data"
gnuplot <<EOF
set xlabel "k"
set ylabel "p(k)"
set term png
set output "${FILE}.png"
plot [1:50] '${FILE}'
EOF
done
答案 0 :(得分:1)
在plot
命令内部循环仅适用于4.4版本,看起来像
file(n) = sprintf("dataFile%d.data", n)
plot for [i=1:9] file(i)
使用bash我会在bash循环中构造plot
命令,稍后在gnuplot脚本中使用它:
for Counter in {1..9}; do
FILE="dataFile${Counter}.data"
if [ $Counter = 1 ]; then
plot="plot '$FILE'"
else
plot=$plot", '$FILE'"
fi
done
gnuplot <<EOF
set xlabel "k"
set ylabel "p(k)"
set term png
set output "output.png"
$plot
EOF