#はじめに
計算物理の分野では求めた関数をグラフとしてプロットしり、集めたデータをファイルから出力しプロットしたかったりします。
ここでは、その際利用するツールの一つであるgnuplot
に関して、初歩的なコマンドをまとめておきます。
#インストール
gnuplotをまずはインストールしましょう。
macOSでのインストールに関しては下記の記事がとても参考になります。
gnuplotをHomebrewからインストールするときの手順
#起動
Gnuplotはgnuplot
コマンドで起動することができます。
$ gnuplot
G N U P L O T
Version 5.2 patchlevel 6 last modified 2019-01-01
Copyright (C) 1986-1993, 1998, 2004, 2007-2018
Thomas Williams, Colin Kelley and many others
gnuplot home: http://www.gnuplot.info
faq, bugs, etc: type "help FAQ"
immediate help: type "help" (plot window: hit 'h')
Terminal type is now 'aqua'
gnuplot>
#基本コマンド
###関数をプロット(2次元)
関数をプロットするには、plot
コマンドを利用します。省略形pl
でも構いません。
変数xを利用することができます。
gnuplot> plot sin(x)
一気に複数の関数をプロットすることもできます。
gnuplot> plot sin(x), x, cos(x)
###関数をプロット(3次元)
3次元グラフをプロットするには、plot
関数ではなく、splot
関数を利用します。
変数xに加えて、変数yを利用することができるようになります。
gnuplot> splot x**2 + y**2
###関数を再プロット
はじめにプロットした関数と、別の関数を同時に表示させるためには、replot
関数を利用します。
省略形のrepl
でも構いません。
gnuplot> replot cos(x)
###グラフをクリアにする
clear
コマンドを利用することによって、グラフが表示されるウィンドウ(AquaTermなどのツールにより開かれるウィンドウ)をクリアにすることができます。
つまり、再度グラフを構築することが可能になります。
gnuplot> clear
###オプションを設定する
オプションを設定するにはset
コマンドを利用します。
gnuplot> set [オプション]
###設定の読み込み
上記set
コマンドなどで追加した設定(例:領域や見た目の変更など)を現在のグラフに適用するには、replot
コマンドを使用します(repl
でも構いません)。
gnuplot> replot
先ほどのset
コマンドを利用して次に各種設定の方法を記載しておきます。
###表示領域の変更
plot
コマンドでは、標準では、横軸は[-10, 10]、縦軸はグラフがうまく収まるように自動的に設定されます。
ただし、表示領域を変更したい場合もあると思います。そんな時は次のコマンドで変更することができます。
####x軸の範囲
gnuplot> set xrange[2:9]
gnuplot> replot
xrange
はxr
と省略することができます。
####y軸の範囲
gnuplot> set yrange[-2:2]
gnuplot> replot
yrange
はyr
と省略することができます。
####z軸の範囲
gnuplot> set zrange[-5:5]
gnuplot> replot
zrange
はzr
と省略することができます。
###x(,y(,z))軸の範囲を設定
plot
する段階で範囲を設定する場合、x、y、z軸の範囲をまとめて設定することができます。
- 2次元
plot [ x 軸の左端値:x 軸の右端値] [ y 軸の下端値:y 軸の上端値] 式
- 3次元
splot [ x 軸の左端値:x 軸の右端値] [ y 軸の前端値:y 軸の奥端値] [ z 軸の下端値:z 軸の上端値] 式
gnuplot> plot [-9:9] [-2:2] sin(x)
指定する必要のない軸に関しては[]
範囲を空にします。
また、下端、上端を省略することも可能です。
gnuplot> splot [] [] [:0.5] sin(x)*cos(y)
###タイトルを設定
gnuplot> set title "title fuga"
###ラベルの設定
gnuplot> set xlabel 'x hoge'
gnuplot> set ylabel 'y hoge'
gnuplot> replot
###設定のリセット
gnuplot> reset
gnuplot> replot
#おわりに
関数を視覚的に理解しておくことは、様々な物理現象を読み解く際に大いに役に立ちます。ですので、関数をより身近なものにして諸現象への理解を深めていこうと思います。