TikZ・PGFPlots による専門的な描画
TikZ は模式図・フローチャート・幾何図、PGFPlots は座標軸とデータの描画に使います。拡大しても鮮明なベクター図を作り、文書のフォントや数式と揃えられます。
EasyLaTeX のコンパイラー設定:LuaLaTeX と ltjsarticle。図には tikz、グラフには pgfplots を読み込みます。複雑な図ほど処理時間が増えます。
コードで描く場合と画像を使う場合
| 内容 | 適した方法 |
|---|---|
| 写真・スキャン・画面画像 | 既存画像を挿入 |
| フロー・構造・幾何図 | TikZ |
| 関数・測定データ・誤差棒 | PGFPlots |
| 複雑な専門図や既存の図形 | 作図ツールで PDF を出力。SVG は PDF や適切な画像形式に変換して挿入 |
再現性・バージョン管理・字体の統一が利点です。用途に合う専門ツールも使い、安定した形式で取り込みます。
最小の TikZ 図
プリアンブルで読み込みます。
\usepackage{tikz}
軸と線分を描く例です。
\begin{tikzpicture}
\draw[->] (0,0) -- (4,0) node[right] {$x$};
\draw[->] (0,0) -- (0,3) node[above] {$y$};
\draw[blue,thick] (0,0) -- (3,2);
\end{tikzpicture}
通常の直交座標では既定の単位は 1 cm です。\draw は経路、角括弧は書式、node は文字を追加します。
ノードと矢印
書式を定義して再利用します。
\begin{tikzpicture}[
box/.style={draw, rounded corners, minimum width=2.5cm, minimum height=8mm},
arrow/.style={->, thick}
]
\node[box] (input) {入力データ};
\node[box, right=1.5cm of input] (process) {処理};
\node[box, right=1.5cm of process] (output) {出力結果};
\draw[arrow] (input) -- (process);
\draw[arrow] (process) -- (output);
\end{tikzpicture}
right=... of ... には次のライブラリが必要です。
\usetikzlibrary{positioning}
長いラベルは短縮するか text width を指定し、ノードの重なりを防ぎます。
最小の PGFPlots グラフ
互換レベルを指定して読み込みます。
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
座標を直接書く例です。
\begin{tikzpicture}
\begin{axis}[
xlabel={時間(s)},
ylabel={速度(m/s)},
grid=major
]
\addplot coordinates {(0,0) (1,1) (2,4) (3,9)};
\end{axis}
\end{tikzpicture}
axis が軸・目盛り・ラベル・グリッド、\addplot が系列を扱います。量と単位を明示し、色だけで系列を区別しないようにします。
ファイルのデータを使う
プロジェクトに data/velocity.csv を作ります。
time,velocity
0,0
1,1
2,4
3,9
列名を指定して読み込みます。
\addplot table [x=time, y=velocity, col sep=comma] {data/velocity.csv};
データと作図を分けると検証・更新が容易になります。x= と y= は CSV の列名に一致させます。
文書に配置する
キャプション・ラベル・参照を使うため figure で囲みます。
\begin{figure}[tbp]
\centering
% tikzpicture または axis をここに配置
\caption{時間による速度の変化}
\label{fig:velocity}
\end{figure}
キャプションには内容・出典・必要な誤差の説明を書きます。コードだけでは説明の代わりになりません。
よくある問題
Environment tikzpicture undefined
tikz を読み込みます。位置指定には \usetikzlibrary{positioning} も必要です。
Environment axis undefined
TikZ だけでなく pgfplots を読み込みます。axis は PGFPlots の環境です。
処理が遅い
不要な点・レイヤーを減らし、処理済みデータを使います。非常に大きい図は別の作図プロジェクトで PDF にし、ダウンロードした PDF を本文プロジェクトにアップロードして挿入できます。
完全な例
\documentclass[a4paper,12pt]{ltjsarticle}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{figure}[tbp]
\centering
\begin{tikzpicture}
\begin{axis}[
width=0.75\linewidth,
xlabel={時間(s)},
ylabel={速度(m/s)},
grid=major
]
\addplot[blue,thick,mark=*] coordinates {
(0,0) (1,1) (2,4) (3,9)
};
\end{axis}
\end{tikzpicture}
\caption{時間による速度の変化}
\label{fig:velocity}
\end{figure}
\end{document}