gnuplotによるグラフ作成24~プロット座標系の変更
今回はxy直交座標系と異なる極座標、円筒座標、球座標系でプロットする方法について紹介する。
1. 極座標系
前回までにパラメトリックプロットを紹介したが、今回は極座標系で具体的にはr=f(θ)と表せるような関数をプロットする。
極座標系を使用するには以下のようにset polar
とすると変数t (θに相当)が設定される。
set polar >dummy variable is t for curves
例えばカージオイド曲線 をプロットするには
plot 1+cos(t)
少し書式(レンジ・アスペクト比)を整える必要はあるが、極座標プロットはできている。
2. 円筒座標系/球座標系
3次元での円筒座標系を扱うこともできる。まずset mapping cylidrical
とすることで3次元空間を円筒座標系として取り扱う。さらに角度パラメータφを扱うためset parametric
としてパラメトリックモードにする。円筒を描画するには
をプロットする。
set mapping cylidrical set parametric set isosamples 40 splot cos(u),sin(u),v
以下のように円筒座標系でプロットすることができる。φはu, zはvに対応している。
円筒座標系と同じ要領で球座標系でプロットする。set mapping spherical
とすることで3次元空間を球座標系にして、set parametric
としてパラメトリックモードにする。
球座標系で球を描画するには
set mapping spherical set parametric set isosamples 40 splot cos(u)*cos(v),cos(u)*sin(v),sin(u)
以下のように円筒座標系でプロットすることができる。θはu,φはvに対応している。
xyzのスケールが等しくないため、球がつぶれてみえてしまう。そこでset view equal xyz
でxyzのアスペクト比を等しくし、さらにxy面と球の下端が揃うようにset ticslevel 0
とする。
set view equal xyz set ticslevel 0
以下のように球を正しく描画することができる。
3. まとめ
今回はgnupotを用いて極座標、円筒座標、球座標系でプロットする方法を紹介した。