gnuplotのplotでforループを使ったグラフプロット(plot for [i = ... )

以前に書いたブログ
で「do for ...」を使ったループ処理について解説しました。そしてgnuplotにはこれとは異なるforループというものも使うことが出来ます。
(便宜上ループと言ってますが、ドキュメントの方ではイテレーションとなってます。意味としてはイテレーションの方が適切でしょう。ただうまく説明出来るだけの知識が無いのでループと言うことにします😔)

forの書き方

このforの使い方は、書き方は基本的に以下のようになります。
plot for [i = 1:5] sin(x) * i

そして結果は以下のグラフとなります。
これをforを使わないで表せば以下のようになります。
plot sin(x), sin(x)*2, sin(x)*3, sin(x)*4, sin(x)*5

forを使う場合と使わない場合を見比べれば、かなり書き方を簡略化出来ることが分かります。
書き方としてはplotのすぐ後ろにforの構文が入るので、なんでこれでループとなるのか?と面食らうかも知れませんが、まぁそういうものだと思って慣れるのがいいかと。

また、以下のように続けて使うことも出来ます。
plot for [i = 1:15] sin(x)*i, for [i=1:30] cos(x)*i


なおiは1ずつしか増やせないかというとそうでもなく、
[i = 1:100:4] のように書けばiを4ずつ増やすことが出来ます。
(変数名はiである必要はないです)

また変数の値を増やすだけでなく、いくつかのファイル名などをまとめて渡すというような使い方も出来ます。書式は
[file in "001.dat 002.dat 003.dat"]
のような書き方となります。こちらはデータプロットの際に役に立つでしょう。

forはここまでで説明したplot以外にもsetやunsetで使うことも出来るようです。

以上のようにforは1つのキャンバスに複数のグラフをまとめてプロットする場合に便利かと思います。


その他gnuplot関連のブログ記事

Amazon データ解析関連書籍など

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)