1. ホーム
  2. gnuplot

[解決済み] gnuplot 内のループ構造?

2022-02-28 11:52:59

質問

gnuplot で複数のファイルからデータを繰り返し取得して、それらを同じグラフにする方法はありますか。例えば data1.txt, data2.txt......data1000.txt のようなファイルがあって、 それぞれが同じ数の列を持っているとします。ここで私は次のように書くことができます。

plot "data1.txt" using 1:2 title "Flow 1", \
     "data2.txt" using 1:2 title "Flow 2", \
      .
      .
      .
     "data1000.txt"  using 1:2 title "Flow 6"

しかし、これでは本当に不便です。をループさせる方法はないものかと考えていました。 プロット の部分を gnuplot で表示できます。

どのように解決するのですか?

確かにあります (gnuplot 4.4+ では)。

plot for [i=1:1000] 'data'.i.'.txt' using 1:2 title 'Flow '.i

変数 i は変数または文字列として解釈できるので、次のようなことができます。

plot for [i=1:1000] 'data'.i.'.txt' using 1:($2+i) title 'Flow '.i

行を互いにオフセットさせたい場合。

タイプ help iteration を gnuplot のコマンドラインで実行すると、より詳細な情報が得られます。

については、@DarioPさんの回答も参考にしてください。 do for 構文を使用すると、より伝統的な for ループになります。