サーチ…


TikZ - 手動レイアウト

パッケージTikZはグラフを描画するのに適しています。

これは小さな例です(TikZ 3.0以降が必要です)。

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta}

\begin{document}
  \begin{tikzpicture}[auto,vertex/.style={draw,circle}]
    \node[vertex] (a) {A};
    \node[vertex,right=1cm of a] (b) {B};
    \node[vertex,below right=1cm and 0.5cm of a] (c) {C};
    
    \path[-{Stealth[]}]
      (a) edge node {1} (b) 
      (a) edge (c)
      (c) edge (b);
  \end{tikzpicture}
\end{document}

ここに画像の説明を入力

任意の複雑なグラフを作成できます。しかし、長いコードに注意してください。 \foreachあり、すべての位置とスタイルのオプションをメモして\foreachてください(TikZのマニュアル、13-17項参照)。

TikZ - グラフの仕様

TikZは、 DOTに似た構文を提供しています。これは、グラフの描画コードを大幅に強化するために使用できます。

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{graphs,quotes,arrows.meta}

\begin{document}
  \begin{tikzpicture}
    \graph[nodes={draw,circle},edges={-{Stealth[]}}] {
      A -> ["1"] B, 
      A -> C,
      C -> B
    };
  \end{tikzpicture}
\end{document}

ここに画像の説明を入力

ご覧のとおり、構文を簡単にするためにきめ細かな制御を交換します。より複雑なグラフを指定すると、 graphsライブラリが本当に輝きます:

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{graphs,graphs.standard}

\begin{document}
  \begin{tikzpicture}
    \graph {
      A -> { subgraph I_n [V= {B,C,D}] } -> E 
    };
  \end{tikzpicture}
\end{document}

ここに画像の説明を入力

さらに多くのオプションと定義済みのグラフがあります。 TikZマニュアルのセクション19を参照してください。

TikZ - アルゴリズムグラフ描画

TikZは自動グラフレイアウト用のいくつかのアルゴリズムを実装しています(LuaLaTeXが必要です)。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing,quotes}
\usegdlibrary{force}

\begin{document}
  \begin{tikzpicture}
    \graph[spring layout] {
      A -> ["1"] B, 
      A -> {C, D},
      C -> {B, D},
    };
  \end{tikzpicture}
\end{document}

ここに画像の説明を入力

いくつかのアルゴリズムとそれらに影響する多くのオプションがあります。詳細については、TikZマニュアルのパートIVを参照してください。

マルコフ連鎖の状態遷移図

以下の行列がマルコフ連鎖に関連する遷移確率行列であると仮定する。

    0.5   0.2  0.3
P=  0.0   0.1  0.9
    0.0   0.0  1.0

マルコフ連鎖の状態の性質を調べるために、マルコフ連鎖の状態遷移図を描く。

\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning}
\begin{tikzpicture}[->,>=stealth',shorten >=2pt, line width=3pt, 
                                  node distance=2cm, style ={minimum size=20mm}]
\tikzstyle{every node}=[font=\huge]
\node [circle, draw] (a) {1};
\path  (a) edge [loop above] (a);
\node [circle, draw] (b) [right=of a] {2};
\path  (b) edge [loop above] (b);
\draw[->] (a) -- (b);
\node [circle, draw] (c) [below=of a] {3};
\path  (c) edge [loop below] (c);
\draw[->] (a) -- (c);
\draw[->] (b) -- (c);
\end{tikzpicture}

ここに画像の説明を入力



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow