理工系研究者のための Mac OS X, Windows, Linux メモ
 
このエントリーをはてなブックマークに追加

Gnuplotのグラフを調整するには


ラインスタイルを指定したい

ラインスタイルに線の色を指定しておくとplotへの色指定が簡単になる。

まず次のようにラインスタイルを指定する。

set style line 1 linecolor rgbcolor "#FF0000" # red
set style line 2 linecolor rgbcolor "#0000FF" # blue
set style line 3 linecolor rgbcolor "#808000" # olive
set style line 4 linecolor rgbcolor "#800080" # purple
set style line 5 linecolor rgbcolor "#008000" # green
set style line 6 linecolor rgbcolor "#00ffff" # aqua
set style line 7 linecolor rgbcolor "#000080" # navy
set style line 8 linecolor rgbcolor "#800000" # maroon

ここで指定した番号をlinestyle (ls) で指定する。

plot sin(x) ls 1, cos(x) ls 2, tan(x) ls 3

ラインスタイルには、線の色だけでなく、 線の幅、ポイントの種類などさまざまな設定ができる。詳しくはヘルプを見ると良い。

help set style line

線の色を指定したい

参考:Gnuplot Q&A 掲示板 803

gnuplot> plot sin(x) lt rgb "blue"

set terminal において x11 や postscript など、連続色に対応している terminal にする必要がある。

▼参考サイト or 参考文献

線の太さと種類、点の種類を変える

次のように線と点の種類を変化させる事が出来る。

gnuplot> plot "file" with lp lt 3 lw 2 pt 5 ps 2

lpは線と点を両方プロット、線の種類(lt)を3番目のもの,線の太さ(lw)を2に,点の種類(pt)を5番目のもの,点の大きさ(ps)を2にする。 (lp=linespoints,lt=linetype,lw=linewidth,pt=pointtype,ps=pointsize

ターミナルをpostscriptにした場合、点の種類は以下の13種類。

ターミナルを他のものにすると点の種類は変わってしまう。 線の太さの変更は postscript eps 出力にも反映されるが、線だけ太くなりグラフの枠が細いままなのでバランスが良くない。

グラフの大きさを変える

グラフの大きさを大きくするには set size を使う。

gnuplot> set size 2

set size ではグラフの大きさは変化しますが、フォントの大きさは変化しません。グラフを小さくすると相対的にフォントが大きくなります。

gnuplot> set size 0.3,0.3

直線を描く時のサンプル数

直線の場合、2点有れば決まるのでサンプル点数を2にすると、ファイルサイズが小さくなる。また pstoedit で wmf に変換した時のがたつきの回避にもなる。

set sample 2

pm3d のカラーバーを設定する

まず始めに pm3dモードにする。

gnuplot> set pm3d

サンプルとして次のようなグラフを描いてみる。

gnuplot> splot[-2:2][-2:2] sin(x*y)

上から見た図にするには、

gnuplot> set pm3d map
gnuplot> splot[-2:2][-2:2] sin(x*y)

とする。 変更後のグラフは左下図のようになる。

縦方向のサンプリングが荒いので、次のようにサンプル数を指定する。

gnuplot> set isosamples 50
gnuplot> splot[-2:2][-2:2] sin(x*y)

これで右上図のように十分なサンプル数のグラフが出来る。

次にカラーバーの設定を行う。 カラーバーを表示する値の範囲を指定するには、次のように入力する。

gnuplot> set cbrange[-0.8:0.8]
gnuplot> splot[-2:2][-2:2] sin(x*y)

指定範囲外の部分は黒塗りになる。

次に、カラーバーの色を変更する。 まずカラーバーの色を表す3つの数字を決める必要がある。 これを決めるためには次のウエブサイトにアクセスして、フォームに色を指定するとよい。

SITE: pm3dpal

例えば、最少値が赤、中心値が黒、最大値が青のカラーバーを作るためには上記ウエブサイトのフォームに次のように入力します。

#ff0000 #000000 #0000ff

そして、Find paletteボタンを押すと、次のように表示される。

Requested color list: #ff0000 #000000 #0000ff
Palette rgbformulae: -36,0,36
Palette preview:

ここで得られた Palette rgbformulae の値を指定すると希望のカラーバーを持つグラフが作成できる。

set palette rgbformulae -36,0,36
gnuplot> splot[-2:2][-2:2] sin(x*y)

▼参考サイト or 参考文献

関数のグラフを書くときのサンプル数を増やす

デフォルトのサンプル数では、大きく変化するようなグラフを正確に書き表せない。例えば、

plot[-20:20] exp(-x*x/100)*sin(5*x)

を書いてみると左図のようになる。サンプル数を set sample で増やしてやると右図の様に正しく書き表せる。

set sample 400

軸の目盛りの指数を上付き表記にしたい

出力をEPSファイルとする場合には、目盛りの指数を上付き表記にすることができる。 例えば次のように set format を行う。

gnuplot> set format y "%5.2l x 10^{%L}"

"%5.2l" は仮数部のフォーマットで、全体が5桁で小数点以下が2桁であることを表す。 "10^{%L}"は、%Lが指数部の値を表し、10の肩に乗せるための表記。 "x"は「掛ける(×)」を表すために付ている。

X11上でグラフを描くとy軸のラベルは"3.00 x 10^{2}"のようになるが、次のようにするとEPSファイルにしたときには、上付きの指数になっている事が確認できる。

gnuplot> set terminal postscript eps enhanced
gnuplot> set output "hoge.eps"
gnuplot> plot "hoge.dat"

set terminal をするときには、enhanced(拡張)のオプションを付ける。

フォントを指定する

グラフ内で用いる文字のフォントを指定する。 フォント設定の文法は terminal によって異なる。 ここでは x11 と emf の場合の設定方法を書く。

set terminal x11 font "Helvetica,18"
set terminal emf 'Arial' 18

これでそれぞれフォント名とフォントサイズが指定できる。 その他のterminalの場合や、より詳しい情報はhelpをみるとよい。

help set terminal x11