にうむろぐ

暇なときに何か喋ります

gnuplotからTikZを介してpdfを生成

gnuplotでグラフをpdfで作成したい。直接pdfに出力できるが、LaTeX(TikZ環境)を介した方法があったのでメモ。

LaTeX, gnuplot はインストール済みとする。

 

環境:Mac, texlive 2016.

 

gnuplotの出力切り替え

gnuplotを起動して、set terminal (または set term)と打つと、出力先の一覧が出る。

set terminal ◯◯ で切り替えられる。

例えばこんな感じ:

 gnuplot > set terminal pdf
 gnuplot > set output "graph.pdf"
 gnuplot > plot sin(x)

 

TikZ形式で出力

直接pdfを作るのではなく、LaTeX (TikZ環境)を経由することでより美しいグラフのpdfを作ることにする。

 

出力先をtikzにしてプロットすると、tikz環境の形式でtexファイルが出力される。

 gnuplot > set terminal tikz
 gnuplot > set output "graph.tex"
 gnuplot > plot sin(x)

gnuplot-lua-tikz.sty の生成

これでできたtexファイルを読み込んでタイプセットすればpdfが作られるのだが、それにはスタイルファイル gnuplot-lua-tikz.sty が必要。インストールしたgnuplotのパッケージ内にも存在すると思うが、探すのが面倒なので然るべき場所に新しく生成することにする。

ターミナルで

texlive/texmx-local/tex/latex/gnuplot

に移動する。(ディレクトgnuplotは自分で生成)

gnuplotを起動して、以下のコマンドを入力。

 gnuplot > set terminal tikz createstyle

すると以下の4つのファイル

が生成されるはず。

最後にターミナルから sudo mktexlsr を実行してls-Rファイルを更新。(多分 sudo 必要)

 

タイプセット

あとはgnuplotで出力したgraph.texを以下のようなtexファイルで読み込み、タイプセットすればpdfが生成される。

\documentclass[dvipdfmx]{standalone}
\usepackage{gnuplot-lua-tikz}
\usepackage{tikz}

\begin{document}
 \input{graph.tex}
\end{document}

 

参考

qiita.com