はじめに
LaTeXとgnuplotを合わせて使っていると、「いちいちplotするためのコードを外部へ切り離しておくのは面倒だ」と感じる機会が往々にしてあります。
あるいは、「LaTeX文書の中でグラフの色・フォントを変更したいけども、gnuplotで事前にグラフを生成してるからどうにも…」という場面もあるでしょう。
そこで、グラフ描画をLaTeX(このパッケージはLaTeXのみならず、ConTeXt、plain TeXでも利用可能なのでこの言い方は厳密ではありません)で完結させるパッケージ、PGFPlotsを紹介します。
このパッケージは、PGF/TikZを最大限活用することでグラフ描画を行います。
公式Webサイトはこちら。
このページに掲載したコードについて
以下のコードは全てLuaLaTeX + LuaTeX-jaの環境で検証しています。おそらく、日本でメジャーなpLaTeX + dvipdfmxでも同じコードが動くはずです。
また、例示したコードのうち、大部分は公式のPDFドキュメントから引用しています。
PGFPlotsの簡単な例
御託を並べるよりも、実際の例を見る方がわかりやすいでしょうから、次の例をご覧ください。
\documentclass{ltjsarticle}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
このコードをコンパイルするだけで、
このようなグラフを得ることができます。
また、3次元グラフも同じようにして、
\documentclass{ltjsarticle}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3 [surf] {sin(x) * sin(y)};
\end{axis}
\end{tikzpicture}
\end{document}
使い方
基本的には、
...
\pgfplotsset{compat=1.12}
\begin{axis}
# ここの間に色々書く
\end{axis}
...
で事足ります。
\pgfplotsset{compat=...}
これは、PGFPlotsの互換性を担保するためのものです。
現在配布されているPGFPlotsの最新バージョンは1.12.*なので、\pgfplotsset{compat=1.12}
なら最新の機能を全て使えるようにしていると解釈できます。
昔のPGFPlotsのコードを保守している場合は、そのコードにあったバージョンを\pgfplotsset{compat=...}
で指定してあげれば良いわけです(ただし、公式ドキュメントでは「compat=...には、1.3以上を指定するように」という但し書きがあります)。
axis環境
座標の目盛りを規定します。
対数目盛りを用いたい場合は、それぞれ semilog{x or y}axis環境(x or y軸をそれぞれ対数目盛りに)、logaxis環境(x軸、y軸の両方を対数目盛りに)を用います。
なお、axis(及びそれに類する)環境内に書くコマンドは、TikZでおなじみの通り文末を必ず";"で終わらせる必要があります。
\addplot & \addplot3d
指定した関数を描画します。
\addplot3d
を使うと、3次元空間上でプロットされます。
尻切れとんぼですが、書く気力が尽きたので今日はこの辺で。