この質問は gnuplot内のループ構造? および DarioP によって answer に関連しています。
gnuplot 4.6はdoコマンドを導入しました。これを使用して、例のファイルや色の配列をループするにはどうすればよいですか?正しい構文は何ですか?
colors = "red green #0000FF"
files = "file1 file2 file3"
do for [i=1:3] {
plot files(i).".dat" lc colors(i)
}
すべてのファイルを単一のプロットにしたい場合は、plot for[...
(バージョン4.4以降でサポート)を使用する必要があります。 do for
(バージョン4.6以降でのみサポート)を使用した複数のplot
コマンドのループは、multiplot
モードでのみ機能します。
次の2つのソリューションでは、すべてのデータを1つのグラフにプロットしますが、反復は少し異なります。
最初のソリューションは、Word
を使用して、プロット時に文字列から直接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
を変更し、インデックスを使用する代わりに、Wordリストを直接反復処理します。
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'