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

gnuplotで描いたグラフをLatexに貼り付けるには,epsファイルを利用するのが一般的です。eps画像は仕上がりが美しくLatexに貼り付けるのも簡単なので便利なのですが,細かい部分を編集するのはそれほど簡単ではありません。特に,グラフの中に数式を入れたい場合などは,少なからず工夫が必要です。そこで私は,最近tikzを使ってgnuplotのグラフをLatexに貼り付けています。

tikzはLatex用の図形描画パッケージで,自由度の高い図形を描くことが可能です。gnuplotのグラフはtikzのコマンドで出力することができ,簡単にLatex文書に貼り付けることができます。ラベルや凡例に数式を用いることもできるため,論文などに使うグラフの作成に便利です。

スタイルファイルの準備

Latex文書内にTikzで図を描くために必要なファイルは,gnuplotから以下のコマンドを実行することで生成することができます。

gnuplot-lua-tikz.sty,gnuplot-lua-tikz.tex,gnuplot-lua-tikz-common.texの3つのファイルが生成されるのでパスの通ったディレクトリに入れるか,もしくはLatexのソース・ファイルと同じ場所に入れます。

gnuplotから出力

gnuplotからtikzファイルを出力するには,terminalをtikzに設定して,outputファイルを指定します。あとは,通常と同様にgnuplotのスクリプトを書くだけです。

ラベルや凡例に数式を入れたければ,通常のLatexのソース・コードと同様に$$で囲みます。

上の例では,”graph.tex”というファイルにtikzのコマンドが出力されます。描いているのは,\(f(x)=x^2-4\)のグラフですが,凡例とx軸のラベルに数式を使っています。

グラフの微調整をする際には,いちいちLatexからコンパイルしてグラフを確認していると時間がかかるので,terminalをwindowsにして確認しながらグラフを作成し,完成したらtikzにしてファイル出力するのがいいと思います。

Latex文書にグラフを挿入

gnuplotから出力したグラフをLatexの文書に挿入するには,inputコマンドを使って上で出力したファイルを読み込むだけです。プリアンブルには,

  • \usepackage[dvipdfmx]{graphicx}
  • \usepackage{gnuplot-lua-tikz}

を挿入する必要があります。

図の大きさを調整するには,\scaleboxを使います。上の例では,75%に縮小しています。

あとは,dvipdfmxを使ってPDFファイルを作成します。dvioutではグラフは正しく表示されないので,PDFに変換して確認する必要があります。

グラフをPDFファイルに変換する

tikzの問題点は,コンパイルに時間がかかるということです。少数のグラフであればそれほど問題になりませんが,カラーマップを使ったグラフが大量にある場合などにはそこそこ時間がかかります。そこで,特にコンパイルに時間がかかりそうな複雑なグラフを事前にコンパイルしてPDFファイルに変換しておけば,毎回コンパイルのたびにかかる時間を大幅に短縮できます。

Latexのstandaloneクラスを用いると,グラフの大きさのPDFファイルを作成することができます。

上のようなソースファイルから,dvipdfmxを使ってPDFファイルを作成し,できたファイルをLatexからincludeします。tikzコマンドを毎回コンパイルするよりは大幅に時間を短縮できます。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です