本文へ移動

TikZ のノード、矢印、ダイアグラム

各箱を \node[draw] (name) {text}; で置き、次の箱を positioning ライブラリ(right=of name)で配置して、\draw[->] (a) -- (b); で結びます。

ノード

ノードとは、ある点に置いたテキストで、枠を付けることもできます。draw で輪郭線を、fill で背景を付け、circle や ellipse で丸い形にします(デフォルトは rectangle)。かっこ内に名前を付けると、後でそのノードを参照できます。

形、塗り、大きさを指定したノード

LaTeXプリアンブル: \usepackage{tikz}エディタで開く (新しいタブで開きます)
\begin{tikzpicture}
  \node[draw] (a) at (0,0) {plain box};
  \node[draw, rounded corners, fill=blue!10] (b) at (3,0) {rounded};
  \node[draw, circle, fill=yellow!40] (c) at (5.5,0) {44};
  \node[draw, ellipse] (d) at (8,0) {ellipse};
  \node[draw, minimum width=2.5cm, minimum height=1cm] at (1,-1.6) {fixed size};
  \node[draw, text width=2.6cm, align=center] at (5,-1.6) {text that wraps onto two lines};
\end{tikzpicture}

ノード間の矢印

\draw[->] (a) -- (b); はノード a からノード b への矢印を描きます。線はノードの中心ではなく、境界から始まり境界で終わります。-| と |- は直角に曲がる接続を描きます。

positioning ライブラリで作る小さなフローチャート

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[
    node distance=1.2cm and 1.6cm,
    box/.style={draw, rounded corners, fill=blue!8, minimum width=2.2cm, minimum height=0.8cm},
    >={Stealth},
  ]
  \node[box] (in) {Read data};
  \node[box, right=of in] (clean) {Clean};
  \node[box, right=of clean] (fit) {Fit model};
  \node[draw, circle, below=of clean] (ok) {OK?};
  \draw[->] (in) -- (clean);
  \draw[->] (clean) -- (fit);
  \draw[->] (fit) |- (ok);
  \draw[->] (ok) -| node[pos=0.75, left] {no} (in);
\end{tikzpicture}
\end{document}

right=of in はノードを in の右に node distance だけ離して置きます。ほかの方向は left、above、below と、above right のような斜めの方向です。right=2cm of in は 1 つのノードについて距離を指定します。

矢印とノードのラベル

パスの途中に書いた node は、そのパスのラベルになります。above、below、left、right で側を、midway、near start、near end、pos=0.3 でパス上の位置を指定します。label=below:text はノードにラベルを付けます。

曲がったラベル付きの辺を持つ状態遷移図

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[state/.style={draw, circle, minimum size=1cm}, >={Stealth}, node distance=2.4cm]
  \node[state, label=below:start] (s0) {$q_0$};
  \node[state, right=of s0] (s1) {$q_1$};
  \node[state, right=of s1, fill=green!15] (s2) {$q_2$};
  \draw[->] (s0) to[bend left] node[above] {$a$} (s1);
  \draw[->] (s1) to[bend left] node[below] {$b$} (s0);
  \draw[->] (s1) -- node[above] {$a$} (s2);
\end{tikzpicture}
\end{document}

アンカー

すべてのノードは、境界上にアンカーを持っています。north、south、east、west と、north east のような角です。(box.north) は box の上辺の中央の点です。

ノードのアンカーから出る矢印

LaTeXプリアンブル: \usepackage{tikz}エディタで開く (新しいタブで開きます)
\begin{tikzpicture}
  \node[draw, minimum width=3cm, minimum height=1cm] (box) {Server};
  \draw[->] (box.north) -- ++(0,0.7) node[above] {north};
  \draw[->] (box.east) -- ++(1,0) node[right] {east};
  \draw[->] (box.south west) -- ++(-0.6,-0.6) node[below left] {south west};
  \node[anchor=west] at (box.south east) {\small (anchor=west)};
\end{tikzpicture}

ノードに anchor=west を指定すると、ノードの west アンカーが指定した点に来るように配置されます。

矢印の先端

オプション先端Scissor LaTeX での対応
->、<-、<->TikZ のデフォルトの先端使える
-stealth、-latex従来の stealth と LaTeX の先端使える
-{Stealth}、-{Latex}(arrows.meta)新しい先端使える
|-|両端の縦棒使える
図に指定した >={Stealth}-> で使われる先端使える
-{Stealth[length=3mm]} のような先端のオプション先端の大きさと形一部対応:先端はデフォルトの大きさで描かれる

先端の大きさは TikZ に近いものの、同一ではありません。

対応していないもの

これらの機能は TeX のインストール環境ではコンパイルできますが、ここでは使えません。ほとんどは「問題」タブに表示されます。

機能Scissor LaTeX での結果代わりに書くもの
\matrix(と matrix of nodes)図全体がメッセージ付きの破線の枠になるat (x,y) か positioning でノードを置く
\pic図全体がメッセージ付きの破線の枠になるshift を指定した scope で描画を繰り返す
装飾(decorate、decoration=...)メッセージ付きで無視され、パスは装飾なしで描かれる普通のパスか破線のパス
shapes.geometric のノードの形(diamond、trapezium …)メッセージ付きで長方形として描かれるrectangle、circle、ellipse
double の線メッセージ付きで無視される2 つのノードかパス
to[loop above](1 つのノードのループ)ループは描かれず、メッセージも出ない。ラベルはノードの上に置かれるノードの境界から出る arc か .. controls .. の曲線
pin=ピンのテキストは表示されるが、ピンの線は描かれないlabel=
-| や |- のパスの pos=ラベルは 2 本目の線分に沿ってのみ置かれるので、pos=0.25 は角の近くになる2 本目の線分に pos=0.75 でラベルを付けるか、パスを 2 つに分ける
tikz-cd、circuitikz、forest図はメッセージ付きで除外される簡単な TikZ か画像

\matrix はプレースホルダーになる

LaTeXプリアンブル: \usepackage{tikz}エディタで開く (新しいタブで開きます)
\begin{tikzpicture}
  \matrix[draw] {
    \node {a}; & \node {b}; \\
    \node {c}; & \node {d}; \\
  };
\end{tikzpicture}

「問題」タブ: \matrix in a picture is not supported yet

ひし形のノードは長方形として描かれる

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
  \node[draw, diamond] at (0,0) {Yes?};
  \node[draw, ellipse] at (2.5,0) {ellipse works};
\end{tikzpicture}
\end{document}

「問題」タブ: TikZ node option 'diamond' is not supported yet

ノード、positioning ライブラリ、矢印の先端は、TikZ のマニュアル(PGF パッケージに含まれる)で説明されています:ctan.org/pkg/pgf。図形とパスは TikZ で描く図をご覧ください。

TikZ の基本、TikZ、図と画像もご覧ください。

よくある質問

LaTeX でフローチャートを描くにはどうすればよいですか?

箱には draw を付けた TikZ のノードを、配置には positioning ライブラリ(right=of a、below=of b)を、矢印には \draw[->] (a) -- (b); を使います。

TikZ で矢印に文字を付けるにはどうすればよいですか?

パスの途中にノードを書きます:\draw[->] (a) -- node[above] {text} (b);。

Scissor LaTeX で tikz-cd は使えますか?

まだ使えません。tikzcd のダイアグラムはメッセージ付きで除外されます。代わりに、ノードと矢印で簡単なダイアグラムを描いてください。

このページの例はすべて、サイトのビルド時に Scissor LaTeX で組版されています。 最終更新:2026-11-07