つれづれなる備忘録

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

gnuplotによるグラフ作成15~パラメトリックプロット

 今回は媒介変数を用いたパラメトリックプロットを実行する方法について紹介する。

1. パラメトリックプロットの設定

 パラメトリックプロットはパラメータにより表現表現された関数をプロットする場合に用いる。パラメトリックプロットを行うには、set parametricとしてパラメトリックモードに移行する。

gnuplot> set parametric

        dummy variable is t for curves, u/v for surfaces

コマンドを実行すると2次元のパラメトリックプロットではt, 3次元ではu,vを変数として設定されたことが表示される。終了する場合はunset parametricとすると

gnuplot> unset parametric  

        dummy variable is x for curves, x/y for surfaces

通常の変数xを用いてプロットするように設定が元に戻っていることがわかる。なお以前のバージョンではset noparametricだったが最新のバージョン5.2では警告が表示されてunsetを使用するようにメッセージが表示される。

2. 基本的なパラメトリックプロット

 パラメトリックプロットを実行するにはplot x(t), y(t)とする。パラメトリックモードでない場合は、複数のプロットが1つのグラフに重ね書きされるがパラメトリックモードであれば1つのプロットが描画される。  基本的なパラメトリックプロットとして

x=\cos\theta, y=\sin\theta

として円をプロットする。

plot cos(t),sin(t)

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

"円のパラメトリックプロット"
円のパラメトリックプロット

楕円になっているのは縦横軸のサイズが異なり横長になっていることが原因になっている。そこで事前にグラフのサイズを設定する

set size square
replot

実行すると以下のように縦横比が等しくなり、円がプロットされていることがわかる。なお縦横比を等しくする設定のコマンドとしてset size ratio -1を用いてもよい。set size ratio自体はグラフの縦横比を任意に調整することができる。

"縦横比を等しくした円のパラメトリックプロット"
縦横比を等しくした円のパラメトリックプロット

3. パラメトリックプロットの描画範囲

 パラメータ変数はデフォルトでは-10~10だが、set trange [下限:上限]とすると指定したパラメータの範囲で描画することができる。ここではリサージュ図形として

x=\cos 3\theta, y=\sin\theta

をプロットする。まず特にパラメータ変数を指定せずにプロットすると

plot cos(3*t),sin(t)

下のようにリサージュ図形全体が描画される。

"リサージュ図形のプロット"
リサージュ図形のプロット
  次にパラメータtの範囲を-1/2π~1/2πとして描画するには

set trange [-0.5*pi:0.5*pi]
replot

以下のように半分だけリサージュ図形が描画される。

"パラメータ範囲を指定したリサージュ図形"
パラメータ範囲を指定したリサージュ図形

軸範囲を設定するには、通常のプロット時と同様にset xrange, set yrangeを用いればよい。

4. まとめ

 今回は媒介変数を用いたパラメトリックプロットを実行する方法、グラフの縦横比を等しくする方法、パラメトリックプロットのパラメータの範囲を指定して描画する方法について紹介した。