我正在创建一个交互式脚本,该脚本允许我使用Gnuplot绘制数据文件的特定部分。这些文件包含多个仪器数据通道,我想在绘图上一起绘制指定的通道。目前,我只能使用脚本独立绘制每个通道。
for ycolumn in $ycolumns; do
gnuplot -p << EOF
set datafile separator ","
set autoscale
set grid
set xlabel "Time"
set ylabel "Data"
set title "$graphTitle"
plot "$FILE" using $xcolumn:$ycolumn lt rgb "red" with lines t " "
EOF
这是独立绘制每个通道的代码。要将它们绘制在一起,我需要绘制线条看起来像这样
plot "$FILE" using $xcolumn:$ycolumn1 lt with lines t " ","$FILE" using $xcolumn:$ycolumn2 lt with lines t " ", etc...
我的问题是,如果可能的话,我如何在gnuplot外部创建一个for循环,该循环将每个列命令(使用$ xcolumn:$ ycolumn1 lt并在行“ t”处附加“ $ FILE”)附加到变量,然后附加该变量传递给Gnuplot内的plot命令?
我当时正在考虑使用Expect,但我想不出一种方法来实现此脚本的自动化。
答案 0 :(得分:0)
最直接的方法可能是首先组装整个plot命令(如“那个其他人”在评论中所提到的),然后在此文档中使用它:
plotCmd=""
plotCmdDelim="plot"
for ycolumn in $ycolumns
do
plotCmd="${plotCmd}${plotCmdDelim} '${FILE}' using $xcolumn:$ycolumn lt rgb 'red' with lines t ' '"
plotCmdDelim=","
done
gnuplot -p << EOF
set datafile separator ","
set autoscale
set grid
set xlabel "Time"
set ylabel "Data"
set title "$graphTitle"
${plotCmd}
EOF