【问题标题】:Gnuplot + bash script -- ver 2Gnuplot + bash 脚本——版本 2
【发布时间】:2011-12-29 21:26:40
【问题描述】:

我只是想知道如何使用之前发布的脚本(请参阅this 问题)同时绘制多个文件,即某种多情节案例...

我想用一个更好的替换它,它知道这个多图属性:

for i in `cat ./data.list`
 do 
   cat ./plot.gnu | sed "s:\(INPUTFILE\|OUTPUTFILE\):$i:g" | gnuplot
 done

plot.gnu 几乎和以前一样,但我们需要考虑到多图的要求,以某种适当的方式对其进行修改:

set term postscript enhanced color
set output 'OUTPUTFILE.eps'
set title 'OUTPUTFILE'

set multiplot layout 2,2
p 'INPUTFILE-1.data' u 1:2 w l
p 'INPUTFILE-2.data' u 1:2 w l
p 'INPUTFILE-3.data' u 1:2 w l
p 'INPUTFILE-4.data' u 1:2 w l
unset multiplot

data.list 文件包含 4 个不同的文件,所以 INPUTFILE-1.data, INPUTFILE-2.data, ... 必须被它们替换,最后得到一个 plot。

谁能建议我一些或多或少的好算法,或者为此提供什么?

【问题讨论】:

  • 你怎么称呼那个“多重属性”?
  • Multiplot 只是多个情节相继出现: p 'INPUTFILE-1.data' u 1:2 w l 和 p 'INPUTFILE-2.data' u 1:2 w l,...etc 主要关键是我必须以某种方式同时替换所有 INPUTFILE-1、INPUTFILE-2、...
  • 对不起,我还是不明白。 set multiplot 行如何影响以下行?
  • 您能否在您的帖子中添加一个示例预期的中间输出,很难说出您需要什么作为最终结果(不包括 gnuplot 的实际输出)。祝你好运。
  • 您对代码有什么不满意的地方?事情似乎工作文件。

标签: bash shell gnuplot


【解决方案1】:
n=0
substitutions=
for i in $(<data.list)
 do substitutions+="s:\(INPUTFILE-$((++n))\|OUTPUTFILE\):$i:;"
 done
<plot.gnu sed "$substitutions" | gnuplot

请注意,输出和标题将以第一个输入文件命名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    相关资源
    最近更新 更多