macOSでのgnuplot環境構築&初めの一歩
新しいmacに変わった時、ササっとgnuplotをインストールし関数やデータをプロットできる環境を整えるためのメモ。macOS 10.15.5 Catalinaで動作。
手順はいたって簡単
- Homebrewをインストール。公式サイトの初めに書いてあるコマンドをそのままTerminalへコピペ。実行すればインストールできる。
- Homebrewを使ってgnuplotをダウンロード&インストール。Terminalで以下を実行する。
- 5年前はAquaTermとかを別途インストールしていたけど、現在は(もしかして当時も?)不要。
- $ gnuplot でgnuplotを起動すると、描画ソフトとして'qt'が設定されていることが分かる。前はaquaだった。
qtはまあまあ便利で、画像を表示しているウィンドウの左上のアイコンをクリックするとコピー、印刷、PDFや画像イメージに変換ができる。gnuplotはqt以外にも色々な形式での出力に対応していて、
set term
でどの画像形式で出力可能か確認できる。欲しい形式がない場合は、gnuplotをオプション付けてインストールする
各オプションは
で確認できる。たまには
brew cleanup
を実行して不要なファイルを掃除するとよいらしい。
プロット方法
まずgnuplotコマンドを書き並べたテキストファイルを作成する。拡張子は.dat, .txt, .pltいずれもOK。
最初にデフォルト設定になっているか念押ししておくとよい。terminalをqtに設定しておくと、実行時スクリーン上にプロットが表示される。
reset set term qt enhanced font 'Helvetica,22'
この段階でフォントまで指定しておけば、plotとかset xlabelとかの行でいちいち書かなくて済む。enhancedはギリシャ文字*1、太字、斜体などを出力する際に必要。特定の文字のサイズを特別大きくしたければ、あとでset xlabel '~' font ',24'などとする。プロットのコマンドは、解析的な関数がわかっている場合、シンプルに
f(x)=関数の定義 p f(x)
関数の変化が激しいのでプロット点の数(解像度)を増やしたい、という場合には
set samples 1000 # default: 100
を設定してからplot。2変数関数の3Dプロットなら
f(x,y)=関数の定義 sp f(x,y)
既にある.datファイルから値を読んでプロットしたければ
p 'filename.dat'
テキストファイルが完成したら、Terminalでgnuplotを起動し、そのファイルを呼んで実行する。current directoryにこのファイルが無い場合は、パスを指定するかcdでそのディレクトリまで移動する。以下の2つのうちいずれかを実行する。
load ‘filename.plt’ call 'filename.plt'
普段gnuplotで開き描画するには、基本loadコマンドで事足りる。オプションでパラメータを渡したい時はcallコマンドを使う。詳しくは
command-line — コマンドライン引数をgnuplotに渡す方法は?
GnuplotコマンドもVScodeで書きたい
普段LaTeXをVScodeで書いているので、せっかくならgnuplotの.pltファイルもそこで編集したい。syntax highlightingもしてくれるし。以下のextensionをインストールした↓
インストール後は特に設定変更なしに利用できた。eps形式でプロット内容を出力する方法を使うと、こんなにお手軽。
- VScodeでTeXのpdfを見ながら、「この図こうしたいな」と思ったところで
- ささっと.pltファイルを書き換える
- Terminalでgnuplot実行
- .epsファイルがアップデートされる
- .texファイルも自動でコンパイルされるのでpdf上の図も更新される
これは便利。もしかしたらgnuplot実行もTerminalではなくVScodeからワンクリックでできるように設定できるかも。