我在bash中编程,我尝试使用gnuplot创建4个文件中的一个图。 我的文件在第一列中包含日期,在其余10列中包含不同深度的海洋温度。我得到错误,第0行:无效命令和第0行:需要常量表达式。Gnuplot - 在一个图中绘制多个文件
MyVar="THO"
MySeas="Annual Win Spr Aut Sum"
MyWorkDir=/work/InterAnnual
echo "change dir"
cd $MyWorkDir
MyFileArx1=0001_field_${MyVar}.grb.regular
MyFileArx21=0021_field_${MyVar}.grb.regular
MyFileArx25=0025_field_${MyVar}.grb.regular
MyFileArx26=0026_field_${MyVar}.grb.regular
for MySeasName in ${MySeas} ;do
MyFile1=${MyFileArx1}_sm_${MySeasName}.col.dat
MyFile21=${MyFileArx21}_sm_${MySeasName}.col.dat
MyFile25=${MyFileArx25}_sm_${MySeasName}.col.dat
MyFile26=${MyFileArx26}_sm_${MySeasName}.col.dat
gnuplot << EOF
set term postscript eps enhanced color solid
set out 'InterAnnual.${MySeasName}.6.eps'
set key right top
set grid
set xrange [ 800:2000 ]
set size 1, 0.5
set xlabel "year"
set ylabel " T (C) "
plot "${MyFile1}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt, \
"${MyFile21}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt, \
"${MyFile25}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt, \
"${MyFile26}" u 1:11 t 'Level-6 ${MySeasName} mil0001' w l lt
EOF
done
`
bash不喜欢尾随空格。尝试删除第31行EOF之后的空格和反斜杠(\)第27-30行之后的空格(在gnuplot/plot命令中延续反斜杠之后) – 0range 2014-12-02 18:00:05
非常感谢@Orange提供您的答案。我尝试过,但不幸的是没有更好的。 – Maria 2014-12-03 02:36:07
对我来说,当我删除尾部空格时,错误消息更改为“行0:无效表达式”。无效的表达式错误是因为尽管存在关键字,也没有定义lt(即,删除lt或将其放在后面,例如lt 2)。 – 0range 2014-12-03 02:46:00