- not so Frequently Asked Questions - update 2004/9/5
|
|
not so FAQ |
3次元プロットのあれこれ (その1)Z軸のゼロ点がXY平面から離れてしまう.splotでは,Z軸の原点は,XY平面から少し離れた所にきます.こ れをXY平面上に持ってきたいときには, set ticslevel を使い ます.ticslevelの値を0にすると,Z軸の原点がXY平面と一致します. gnuplot> set ticslevel 0 gnuplot> splot (x**2)*(y**2) もっとメッシュを細かくしたい.関数を3次元プロットするときの,メッシュ(XY座標)の間隔は isosample で決まります.この数値が小さい程メッシュは荒くなり,大き くするとメッシュは細かくなります.標準値は10です. メッシュが荒すぎると隠線処理 set hidden3d の時に問題になりま す.下の例は,標準値10で関数 z=sin(x)*cos(y)をプロットしたものです.上 側が隠線処理をしない場合,下は隠線処理をした場合です. これを避けるには,isosampleの値を大きくします.下の例では40に しています.X,Yそれぞれのメッシュ間隔を別々に変えるには, set isosample 20,40のように2つの値を与えます. gnuplot> set isosample 40 見る角度を変えたい.3次元表示での視点は,set viewによって制御されます. 標準の設定は, gnuplot> show view view is 60 rot_x, 30 rot_z, 1 scale, 1 scale_z となっています.回転させる前は,画面上にXY平面があり,Z軸は画面に垂直 方向となっています. まずX軸を60度(rot_x)回転させます.この結果Z軸は画面に対して 傾いた方向に変わります. 次に,新しいZ軸に対して30度(rot_z)回転します.これがsplotで 描かれる標準の視点です. set viewで回転角を変えると,図が回転します.
等高線を変えたい.等高線は, set cntrparam で制御できます. gnuplot> set contour gnuplot> set cntrparam levels 10 gnuplot> set cntrparam levels incremental -1, 0.2, 1 gnuplot> set cntrparam levels discrete -0.2, -0.5, 0.2, 0.5 上では3通りの設定方法を示しています.levelsでは,等高線を何 段階に分けて描くかで与えます.上の例では10段階に設定しています. incrementalは,等高線を描く高さを,初期値・増分・最終値で 与えます.最後のdiscreteでは,等高線を描く高さを直接列挙し ています. 等高線の凡例は,プロットの凡例と同じ所に描かれます.等高線の凡例だけ を消すには, set noclabel を使います.この時,全ての等高線 の線の種類は同一(表面をプロットするのに使われている線種の次の線種) になります. 等高線の線種は,表面をプロットしている線種の次のものから順番に使われ ます.等高線の線種を自由に制御する方法は無いようです.この場合は, tgif等のファイルに落して編集すれば良いでしょう. 等高線だけを2次元プロットにして描きたい.3次元表示での視点を真上にすれば,等高線だけの2次元プロットになりま す.まず,3次元表示をした後, set view で視点を0,0に変更しま す.また,表面を描かないように set nosurface を指定します. gnuplot> set contour base gnuplot> set nosurface gnuplot> set view 0,0 set view 60,30
set view 0,0
set view 0,0にすると,Y軸は図の右側に来ます.図の左に移動 したければ,set view 180,180にします.但し,Y軸にlabelを付け たとき,普通の2次元プロットであれば,文字列はY軸に沿って下から上に向かっ て表示されますが,この様に3次元プロットを2次元にして見ると,Y labelは 常に横向きになります.通常の2次元プロットと同じようにするには,下で述 べているtableを使うとよいでしょう. ターミナルを table にして等高線の座標を一旦ファイルに書き出し,そ れを2次元プロットすれば,もう少しきれいな等高線図を作ることができます. ぷろっとぎゃらりぃに具体例があります. gnuplot> set term table gnuplot> set output "table.dat" gnuplot> replot gnuplot> set output gnuplot> set term x11 gnuplot> plot "table.dat" using 1:2 with lines [ver.4] ONLY ! なお,pm3dを使えば, カラーマップを使った2次元プロットを簡単に作成できます. |