つれづれなる備忘録

日々の発見をあるがままに綴る

gnuplotによるグラフ作成4~プロット線の設定

 前回のgnuplotのグラフ書式設定としてプロットレンジ、軸ラベル、タイトルの設定について紹介したが、今回はプロット線のスタイル設定の方法について紹介する。

atatat.hatenablog.com

1. プロット線のスタイル設定

 プロットに用いるプロット線のスタイル設定については、あらかじめ設定されているスタイルを適用する方法と、個別に線種・線太さ・線色を設定する方法がある。

設定スタイルの適用

 あらかじめ設定されているスタイルを適用する場合、plot func with lines lt 2とするとラインスタイル2番の設定がプロット線に適用される。例えば

plot exp(x) with lines lt 2

実行すると

ラインスタイル2番適用プロット
ラインスタイル2番適用プロット

紫色からSeagreenにプロット線が変更されている。 ライン番号ごとにどのような設定になっているか確認するためにはshow linestyleとするとデフォルトでは以下のような表示になる。

gnuplot> show linetype
linetype 1,  linecolor rgb "dark-violet"  linewidth 1.000 dashtype solid pointtype 1 pointsize default
linetype 2,  linecolor rgb "#009e73"  linewidth 1.000 dashtype solid pointtype 2 pointsize default
linetype 3,  linecolor rgb "#56b4e9"  linewidth 1.000 dashtype solid pointtype 3 pointsize default
linetype 4,  linecolor rgb "#e69f00"  linewidth 1.000 dashtype solid pointtype 4 pointsize default
linetype 5,  linecolor rgb "#f0e442"  linewidth 1.000 dashtype solid pointtype 5 pointsize default
linetype 6,  linecolor rgb "#0072b2"  linewidth 1.000 dashtype solid pointtype 6 pointsize default
linetype 7,  linecolor rgb "#e51e10"  linewidth 1.000 dashtype solid pointtype 7 pointsize default
linetype 8,  linecolor rgb "black"  linewidth 1.000 dashtype solid pointtype 8 pointsize default
Linetypes repeat every 8 unless explicitly defined

設定番号は1~8まであり、線の太さは1.0, 線スタイルは実線, 色はHTMLカラーコードを中心に設定されていることがわかる。なお複数プロットを実行すると、プロット線は自動的に1番から順に適用されていく。

個別にスタイルを適用

 色・太さ・線種は個別に設定したい場合はplot func with lines dt 2 lw 2 lc rgb "color"とする。(注:dt 2, lw 2などは連続したパラメータ値ではなく設定番号ととらえる方が適切)dtが線種の設定、lwは太さの設定、lcは線色でカラー名またはHTMLカラーコードで指定できる。線種だけ設定したい場合はplot func with lines dt 2などとして設定しない項目は省略する。例として

plot exp(x) with lines dt 2 lw 2 lc rgb "#556b2f" 

実行結果は以下のようになる。

プロットスタイル個別適用例
プロットスタイル個別適用例

カラー名にdarkolivegreenがないため、カラーコードで指定した。なお使用できるカラー名と色は、Gnuplot's Primerを参照。

dtやlwの番号とプロットの関係を知るには(検索して調べてもよいが)、ターミナルでtestを実行すると以下のようなサンプルプロットが表示される。

test

スタイルサンプル
スタイルサンプル

ラインだけでなく、マーカーや書体などまとめて表示されるが、線の太さであればlinewidth, 線のスタイルであればdashtypeを見れば、各番号に対するプロットサンプルを確認することができる。

2. 複数プロット

 1つのグラフに複数のプロットを行うには、plot func1, func2, func3,...とすればよい。例えばexp(x), x2,x4をプロットするには

plot exp(x), x**2, x**4

なお書式設定は以下の通り、xレンジは-1~5,yレンジは0~200, x軸ラベル名"x", y軸ラベル名"y",グラフタイトル"Basic plot sample"にしている。

set xrange[-1:5]
set yrange[0:200]  
set xlabel "x"
set ylabel "y"  
set title "Basic plot sample"

実行結果は以下のようになる。

複数プロットサンプル
複数プロットサンプル
 

3. 複数プロットのスタイル適用

 複数プロットでそれぞれにスタイルを適用したい場合は、それぞれプロットする関数ごとにwith lines dt 2 lw 2 lc rgb "red"などを付けて指定する。

plot exp(x) with lines lw 3 lc rgb "#556b2f", x**2 with lines dt 2 lw 2 lc rgb "red", x**4  with lines dt 4 lw 2 lc rgb "navy"

実行結果は以下のように、実線、点線、1点鎖線や色、太さをプロットごとに個別に設定している。(同様にライン番号でも指定できる)

複数プロットのスタイル適用例
複数プロットのスタイル適用例

4. まとめ

 今回はプロット線のスタイル設定する方法について紹介した。特に複数プロットを表示する上で必要になる場合が多いので、複数プロットのプロット線のスタイル設定の例も示した。