gnuplotで媒介変数表示(parametric)を使ってグラフを描く方法 (円や球、螺旋模様などに)

関数のグラフを描く場合、普通はxの値に対応したyの値をプロットしていきます。
これとは異なる方法で、媒介変数表示(Wikipedia)という表し方があります。円のような曲線をグラフに描く場合の数式の表し方として便利とかなんとか。

媒介変数表示とは

少し説明してみると、ある変数tがあるとして、このtに対応して
  • x = cos(t)
  • y = sin(t)
のようにxとyを決める関数がある、というようなものでしょうか。適当に図で説明するとこんな感じになるかと思います。


gnuplotで媒介変数表示をする方法 (set parametric)

この媒介変数表示をgnuplotで使うには「set parametric」と設定します。これで二次元プロットでは「t」、三次元プロットでは「u, v」の変数を使って媒介変数表示が出来るようになります。三次元の方は2つ変数が使えるのですが、ちょっとイメージし難いですね…。三次元空間に球などを表現する場合に便利なようです。

変数のデフォルト値)

またデフォルトではt, u, vの変数の値は[-5:5]となっているようです。
この値はそれぞれtrange、urange、vrangeを設定することで変更できます。

samplesの設定

あと円を描いてもややカクカクしたグラフになってしまう場合はsamplesの設定を見直すといいかと思います。
(参考 : gnuplotで関数プロットの形がおかしい場合 : samplesの値の設定について)


実際の媒介変数表示のグラフの例

最後にちょっとしたグラフの例を載せておきます。
円を描く関数をちょっと手を加えて三次元に表すようにしています。
gnuplot> set parametric
gnuplot> splot sin(u),cos(u),u w p



もう少し手を加えてみましょう。
gnuplot> splot sin(v)/10,cos(v)/10,v w p, sin(v)/5,cos(v)/5,v w p pointtype 2, sin(v)/3,cos(v)/3,v w p, sin(v)/2, cos(v)/2,v w p, sin(v)/1.5, cos(v)/1.5,v w p



その他、gnuplot関連のブログ記事

コメント

スポンサーリンク


このブログの人気の投稿

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplotでプロットなどの色をcolornameの指定で変更する

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法