gnuplot : 線種や矢印などに適用するスタイルを作る(set style)

スタイル(set style)とは

gnuplotではデータや関数のプロットの線種を
gnuplot> plot "test01.dat" with lines linewidth 3 linecolor "red"
のように "with ..." を用いて設定します。
そして、この方法とは異なり線種のスタイルを作って、それをプロット型式に適用するということも出来ます。前もってスタイルを作っておくことで、コードを書く時に読みやすく書けるようにもなるでしょう。

補足

後述しますが、スタイル機能は "set style ..." の書式で設定しますが、関数、線種、矢印など適用する要素によって設定する項目が変わってきます。また、適用するやり方にも違いがあることに注意して下さい。スタイル設定を統一的な方法だと思ってしまうと混乱する可能性があります。

スタイル適用の簡単な例

スタイルは "set style ..." で作ることが出来ます。例えばプロットの線種で線幅が5、線の色がグリーンのスタイルは以下のように作成します。
gnuplot> set style line 1 lw 5 lc "green"
そしてこれをプロットの線種に適用するには
gnuplot> plot "test01.dat" linestyle 1
とします。

スタイル設定の上書き

 スタイル設定を適用と共に "with ..." 内などでそれと重複する設定を書くと設定が上書きされます。

スタイルを適用出来る要素

スタイルを設定、適用出来る要素は限られています。適用出来る要素としては主に以下のものがあります。
  • 関数(function)、データ(data)
  • line、arrow、textbox、histogramなど

関数(function)、データ(data)

関数(function)

gnuplot> plot sin(x)
のような関数プロットにスタイルを適用するには
gnuplot> set style function dots
とします。初期状態では関数プロットは "lines" というプロットスタイルになっていますが、これをスタイル設定で変更しておくことで以後のプロットはそのプロットスタイルに変更されます(resetやgnuplotを終了すれば初期設定に戻る)。
なおここの注意点として、functionのスタイル設定ではlines、dots、stepsなどプロットスタイルのみ行うことが出来ます。そのため、以下のように線種(linewidth)も一緒に設定しようとしてもエラーとなり設定出来ません。
gnuplot> set style function lines linewidth 3

データ(data)

データファイルのプロットも関数(function)と同様のスタイル設定を取ります。データファイルのプロットは初期状態では "points" ですがこれを以下のように変更出来ます。
gnuplot> set style data lines
こちらについても、ここで線種の設定などは行なえません。


その他の要素のスタイル設定

ここで説明を関数とデータのものと分けますが、ここからはそれらとは異なり線種やパラメータがスタイルとして設定することになるためです。
(スタイル設定は要素によって設定や適用の仕方が異なるため、どうしても説明が煩雑になってしまいます)

line

簡単な例として2つの線プロットにそれぞれ別々のスタイルを適用するには以下のようにします。
gnuplot> set style line 1 lw 3 lc "red"
gnuplot> set style line 2 lw 2 lc "blue"
gnuplot> plot sin(x) linestyle 1, x linestyle 2

このようにスタイル設定を番号で管理出来るので、プロット時に割り当てるときに便利に使えるようになります。

arrow

矢印(arrow)でスタイル設定をするには以下のようになります。
gnuplot> set style arrow 1 lw 5 lc "cyan"
gnuplot> set arrow 1 arrowstyle 1 from -1,1 to 2,2
gnuplot> plot x


その他

その他にもスタイル設定が出来るものはいくつかあるのですが、今回解説するのはは主に使うであろう範囲に留めておきます。その他やより詳細な設定については必要に応じてドキュメントなどを参照して下さい。


余談 : 文字列の@による差し込み(マクロ)との違い

スタイル機能とは直接関係は無いのですが、以前解説した文字列を@で差し込むという方法でもスタイルと似たような使い方が出来るでしょう。スタイルは適用出来る要素が限られているため、どちらかと言えばこちらの方法の方が自由度が高いと思います。
状況に応じて使いやすいものを選択して下さい。


gnuplot関連のブログ記事

コメント

スポンサーリンク


このブログの人気の投稿

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

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

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

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

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