gnuplotで論文用グラフを描く

経緯


これまで論文用のグラフはOriginかmatplotlibをもちいて書いていました。 Originはそもそも高価だし、ソフトも比較的重いのでできるだけ使いたくありませんでした。 matplotlibは便利なのですが、いちいちfrom matplotlib import pyplot as pltしないとだめでコードが長めになってしまいがちです。 データ分析はPythonですることが多いのでその際のグラフ出力はMatplotlibを使ってます。

ということで代替になるグラフソフトを探していました。 で、結局以前に使っていたgnuplotにたどり着きました。

利点


  • linuxコマンドと親和性があること(まだあんまり体感したことはない)
  • Texのtikzで出力できること
  • 装置から吐き出させたtxtファイルを瞬時にグラフ化できること

このあたりでしょうか。 3つ目の「装置からのデータを瞬時に可視化できる」はすごく便利です。 Shellコマンドと組み合わせて自動でグラフ作成することもできそうですね(Pythonでもできるけど)

Matplotlib vs gnuplot


matplotlibでよくね?ってなりますよね。 matplotlibも便利で特にGnuplotが突出している点はないとおもいますが、すでにCSVなどのデータがあるばあいはGnuplotを使ったほうが圧倒的に早くプロットできます。 MatplotlibとDataFrameとして読み込んだりとか必要ですしね。。。。 情報量はMatplotlibのほうがたくさんあります。

Install


Windowsの場合は公式サイトから。↓

Gnuplot

私はUbuntu(WSL)を使っているのでsudo apt install gnuplot

Macでは brew install gnuplot (brewのインストールが必要です)

簡単な例


set datafile saparator "," # データファイルのdelimiterを設定。 csvファイルの場合は","が一般的。
file = "./data.csv"

set xlabel "Time (h)" # x軸名を設定
set ylabel "Temperature (K)" # y軸名を設定

plot file using 1:2 with point # fileの1列目をx, 2列目をyとしてポイントでプロット。

公式のDemoセクションにたくさんの例があるのでそれを参考に描くといいですよ。