泉式部日記

夢よりもはかなき世の中を明かし暮らす高専生

MacのGnuplotで日本語や数式を使う

僕は普段レポートでグラフを描くときはGnuplotを使っているが, Macでは文字コードの関係上日本語がバグりまくってしまう.
また, レポート作成にはTeXを使用しているのでせっかくだからTeXの数式をグラフ内に入れられるようにしたい.
ということでTikz(てぃくす) を導入してみた.

参考記事: gnuplotのグラフをTikzに出力してLatex文書に貼り付ける

グラフの作成

まずはGnuplotをインストールする.

$ brew install gnuplot --with-x11

(以前は--latexといったオプションが必要だったけど今は必要ないみたい)

その後Gnuplotset term tikz createstyleとすると, gnuplot-lua-tikz ...というstyファイルやtexファイルが生成されるので, それらをソールファイルと同じディレクトリ or TeXのパスが通っているディレクトリに置く.

グラフの出力は, 例えば正弦波のグラフを出力させる場合

# styファイルたちを生成したあとなら'createstyle'は必要ない
set term tikz createstyle
set output "graph.tex"

plot sin(x) title "hoge"

とするとグラフのファイルが出力され, グラフの準備は完了となる.

TeX側の設定

*.texファイルのプリアンブルに以下の文を追加する.

\usepackage{gnuplot-lua-tikz}

あとは\inputを使えばグラフを出力させることができる.
\figure環境に入れることでキャプションやラベルをつけることもできる.

\begin{figure}
  \centering
  % サイズを変えるときは\resizebox{}{}{}を使う!
  \resizebox{1.0\hsize}{!}{\input{graph}}
  \caption{$\sin{x}$}
  \label{fig:graph}
\end{figure}

ただ, texファイルで頑張って図を作っているわけだからコンパイルにすごく時間がかかってしまうのが難点だったり

TeXを使ってるけどいい感じのグラフ描画ソフトが無くてつらいって人は使ってみて欲しいな〜