週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

gnuplotで3次元グラフを描画する・入力コマンドをフォーマット化する


f:id:aisakakun:20180821002818p:plain
gnuplotで3次元図を表示する方法を書いていきます。合わせて、「グラフの色の変更、軸ラベルの表示・設定、入力コマンドのフォーマット化」についても記述させていただきます。
インストールがまだの方はこちらから!
infoaisaka.hatenablog.com

3次元図を表示する手順

数式をもとに3次元図を表示させます。

コマンド

端末」を起動し、以下のコマンドを一行ずつ順に入力してください。

gnuplot (gnuplotを起動)
set xrange[-2:2]
set yrange[-2:2]
set pm3d splot exp(-x*x)*exp(-y*y)
set xrange[-2:2]

でx軸の表示範囲を設定しております。y軸も同様に「yrange」をすれば良いです。

グラフ描画

上記のコマンドを入力しEnterボタンを押すと、以下のようなグラフが表示されます。
f:id:aisakakun:20180820234747p:plain

グラフの色を変更する

先ほどのコマンドの次に以下のコマンドを入力してください

set palette rgbformulae 22,13,-31

そうすると出力結果は以下のように変更されます。
f:id:aisakakun:20180820235745p:plain

set palette rgbformulae <r>,<g>,<b>

r,g,bがそれぞれ赤(red)・緑(green)・青(blue)を意味しており、それぞれに値を入れるとその数字に応じた色で出力されます。

軸ラベルを表示する

x軸y軸のラベル表示を設定します。

set xlabel "x axis"
set ylabel "y axis"

出力結果はこちら
f:id:aisakakun:20180821000718p:plain

入力コマンドをフォーマット化する

ある程度複数コマンドを入力すると、次回同じようなコマンドを入力するのは面倒なので、フォーマット化しコマンド入力をファイルに保存することができます。
上記の例でコマンド入力をいたしましたが、一度「exit」と入力しgnuplotから抜けていただき、再度下記コマンドを入力してください。

gnuplot (gnuplotを起動)
set xrange[-2:2]
set yrange[-2:2]
set pm3d
set xlabel "x axis"
set ylabel "y axis"
save 'sample.dat'
exit

お分かりかと思いますが、

save 'sample.dat'

により、それ以前に入力したコマンドをsample.datファイルに保存しています。もう一度gnuplotから抜け、再度gnuplotを起動してください。そして、下記コマンドを入力してください。

load 'sample.dat'
splot exp(-x*x)*exp(-y*y)

これで先ほど表示したグラフと同様のグラフが出力されます。
save」「load」により
・フォーマットの保存
・フォーマットの呼び出し
をすることができます。

まとめ

3次元図を表示する手順、コマンド、グラフ描画、グラフの色の変更、軸ラベルの表示・設定、入力コマンドのフォーマット化 の方法を紹介いたしました。研究などに非常に使えるものなのでコマンド入力に抵抗がある方も積極的に使用してみることをおすすめします!