使用 TikZ,如何使用矩阵来定位图的顶点?

使用 TikZ,如何使用矩阵来定位图的顶点?

如何使用矩阵库来定位图的顶点?

手册中说,如果我在使用图形库时需要高级对齐顶点,就使用矩阵库,但没有说明如何操作。

这是我想要绘制的图表:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{graphs}
\begin{document}

\begin{figure}[h]
\centering
\begin{tikzpicture}
  \graph[nodes={empty nodes,draw,circle}]
  {
    v1 -> {v2, v3, v4};
    v2 -> {v5, v6};
    v3 -> {v1, v7},
  };
\end{tikzpicture}
\end{figure}

\end{document}

我想将图库与矩阵库一起使用。

答案1

我修改了你的代码,以便包含库chainsmatrix,并包含第二个figure包含相同节点的图表的代码,但它们是:

  1. 以矩阵形式定位。
  2. 拔出箭。

您可以修改矩阵定义中的行和列之间的距离。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{graphs}
% two new libraries
\usetikzlibrary{chains, matrix}
\begin{document}

% the original figure, untouched
\begin{figure}[ht]
\centering
\begin{tikzpicture}
  \graph[nodes={empty nodes,draw,circle}]
  {
    v1 -> {v2, v3, v4};
    v2 -> {v5, v6};
    v3 -> {v1, v7},
  };
\end{tikzpicture}
\end{figure}

% the new figure, with a matrix and then the arrows
\begin{figure}[ht]
\centering
\begin{tikzpicture}
    \matrix (ps) [matrix of nodes, column sep=8mm, row sep=6mm,nodes={draw,circle}] {
      \node (v1) {}; & \node (v2) {}; \\
                     & \node (v3) {}; \\
                     & \node (v4) {}; \\
      \node (v5) {}; &                \\
      \node (v6) {}; &                \\
      \node (v7) {}; &                \\
    };
    \graph [use existing nodes] {
      v1 -> {v2, v3, v4};
      v2 -> {v5, v6};
      v3 -> {v1, v7};
    };
\end{tikzpicture}
\end{figure}

\end{document}

文档(版本 3.0.1a)的主要页面是:

  • 矩阵:第 70 页。
  • 带箭头的图表:第 71-73 页。

相关内容