28

この質問は、gnuplot 内のループ構造に関連していますか? DarioPによる回答があります。

gnuplot 4.6 で do コマンドが導入されました。これを使用して、たとえばファイルや色の配列をループするにはどうすればよいですか? 正しい構文は何ですか?

colors = "red green #0000FF"
files = "file1 file2 file3"

do for [i=1:3] {
  plot files(i).".dat" lc colors(i)
}
4

1 に答える 1

45

すべてのファイルを単一のプロットに入れたい場合は、使用する必要がありますplot for[...(バージョン 4.4 以降でサポートされています)。(バージョン 4.6 以降でのみサポートされている)を使用した複数のplotコマンドのループは、モードでのみ機能します。do formultiplot

次の 2 つのソリューションは、すべてのデータを 1 つのグラフにプロットしますが、反復が少し異なります。

最初の解決策はword、プロット時に文字列から単語を直接抽出するために使用します。

colors = "red green #0000FF"
files = "file1 file2 file3"
plot for [i=1:words(files)] word(files, i).'.dat' lc rgb word(colors, i)

2 番目の解決策は、 を変更linetypeし、インデックスを使用する代わりに単語リストを直接反復処理します。

colors = "red green #0000FF"
files = "file1 file2 file3"
set for [i=1:words(colors)] linetype i lc rgb word(colors, i)
plot for [file in files] file.'.dat'
于 2013-09-03T12:38:57.900 に答える