gnuplot bashshell在一个窗口中绘制几条曲线

时间:2014-10-02 20:11:25

标签: bash for-loop gnuplot

我需要在一个窗口中绘制几条曲线。在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

1 个答案:

答案 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