gnuplot / plotpm3d

カラーマップを使った3次元表示 (pm3d)

3次元図をカラー表示で描きたい.

[ver.4] ONLY !

gnuplotの3次元表示は線あるいは点で描かれますが,ver.3.8や4.0からは
pm3d をセットすることでカラーマップを用いた3次元表示が可能
になっています.画面へのカラー出力の他,PostScriptやpng/jpegなどのフォー
マットでファイルに書き出す事ができます.

 gnuplot> set xrange [-2:2] gnuplot> set yrange [-2:2] gnuplot> set pm3d gnuplot> splot exp(-x*x)*exp(-y*y) 
fig/sample6.7a

PostScriptに出力する場合は,terminalのオプションcolor/monochrome
によりカラーかグレースケールを選べます.グレースケールの図は
set palette gray を用いても可能ですが,この場合は図中の格
子線は色が付いたままとなります.以下の2つの例はPostScript terminal
を用いてファイルに出力した結果です.

 gnuplot> set term postscript eps enhanced color gnuplot> set output "color.eps" gnuplot> replot gnuplot> set term postscript eps enhanced monochromer gnuplot> set output "mono.eps" gnuplot> replot 
fig/sample6.7b
fig/sample6.7c
up

等高線を色で表示したい.

[ver.4] ONLY !

gnuplotの等高線はその名のとおり「線」ですが,pm3dを用いると色を塗っ
た面で表示させることができます.等高線の表示とは事なり,密度分布を
色で表現したようなもので,色を付けられる面を底面や上面に投影すると
いった感じになります.等高面を底面に表示するには set pm3d
にオプション at b を付けます.

 gnuplot> set pm3d at b gnuplot> set ticslevel 0.8 gnuplot> set isosample 40,40 gnuplot> splot x*x*exp(-x*x)*y*y*exp(-y*y) 
fig/sample6.8a

pm3dを使って底面だけを2次元表示するのは非常に簡単です.

 gnuplot> set pm3d map gnuplot> splot x*x*exp(-x*x)*y*y*exp(-y*y) 
fig/sample6.8b
up

3次元の棒グラフを描きたい.

gnuplotは3次元棒グラフを描けないので,少々インチキする必要があります.
3次元データとして,次のようなものを考えます.

 # X     Y    Z 0.0   0.0  2.0 0.0   1.0  3.5 1.0   0.0  1.0 1.0   1.0  3.0 

最初の行は,0< X <1, 0< Y <1 の範囲で Z=2 を表し,下の図
の(1)の領域に相当します.データはヒストグラムですが,最後の行で最大のX,Y
値が定義されていません.これは,1< Y <2, 1< Y <2 で Z=3.0 と
考えます.描きたいヒストグラムは,次のようなものです.

fig/sample6.9

データの各行を何かプログラムを使って膨らませます.上の図でX=0の線上を
考えると,Yは2.0, 2.0, 3.5, 3.5 とステップ状に変化しますので,これを
一つの折れ線で与えます.同様に,X=1とX=2の場合の折れ線も与えます.

 # X     Y    Z 0.0   0.0  2.0 0.0   1.0  2.0 0.0   1.0  3.5 0.0   2.0  3.5  1.0   0.0  2.0 1.0   1.0  2.0 1.0   1.0  3.5 1.0   2.0  3.5  1.0   0.0  1.0 1.0   1.0  1.0 1.0   1.0  3.0 1.0   2.0  3.0  2.0   0.0  1.0 2.0   1.0  1.0 2.0   1.0  3.0 2.0   2.0  3.0 

このようにデータを用意できれば,後は隠線処理して線で繋ぐだけです.こ
のデータを作るプログラムとしては....各自努力してみましょう.

 gnuplot> set hidden3d gnuplot> splot "test.dat" with lines 
fig/sample6.9a
up

[ver.4] ONLY !

Gnuplot ver.4を使っているなら,pm3dを使って,もう少しカッコ良いグラ
フを作ることができます.

 gnuplot> set pm3d gnuplot> splot "test.dat" with pm3d 
fig/sample6.9b
up