1

同じ2列形式のcsvファイルのコレクションがあります。各ファイルに対応する、同じスタイルの別々のxy散布図を作成したいと思います。変更する必要があるのは、入力ファイル名と出力ファイル名だけです。どうやってするの?

4

3 に答える 3

7

andyrasによって投稿されたソリューションは完全に実行可能です。ただし、これらの場合、「ここ」ファイルは通常、余分なプロセスの生成を回避し、一重引用符と二重引用符の混合に問題がないため、より優れています...

for file in $(echo *.dat); do
    gnuplot <<EOF
    set terminal post enh
    set output "output_${file}.ps"
    set datafile separator ','  #csv file
    plot "$file" u 1:2
EOF
done
于 2012-05-19T18:38:06.497 に答える
2

まず、すべてのスタイル情報を含むテキストファイルを作成しますgplot_prefix.txt。次に、プロットするすべてのファイルに一致するパターンがあると仮定します*.dat。次に、次のようにzshスクリプトを作成します。

foreach arg in $@
    filename=${arg}_plotfile.pl
    cp gplot_prefix.txt ${filename}
    echo set output ${arg}.png >>${filename}
    echo plot \"${arg}\" u 1:2 >>${filename}
    gnuplot ${filename}
    rm ${filename}

(これにはバグがある可能性があります。私のzshは現在正しく機能していません)そしてそれを次のように呼び出します

./plotscript.zsh *.dat 
于 2012-05-18T22:43:34.010 に答える
2

ラッパーbashスクリプトを作成し、次のように保存できますplot.sh

#!/bin/bash

echo "set terminal postscript enhanced
set output 'output_$1.eps'

plot '$1'

.datデータファイルすべてに拡張子が付いているとしましょう。これを使用するには、

for datfile in $(ls *dat) ; do ./plot.sh $datfile ; done

bashのコマンドラインで。

于 2012-05-18T23:11:28.490 に答える