将邻接矩阵与 TikZ 图对齐

将邻接矩阵与 TikZ 图对齐

如何将使用 TikZ 绘制的图形的邻接矩阵与图形对齐?这里的邻接矩阵是边-原点-目的地邻接矩阵,因此它指示哪些边属于连接给定原点-目的地-节点对的路径。目前我正在做的事情是这样的:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta}
\begin{document}

\title{Poorly aligned matrix}

\maketitle

\section{Introduction}

\begin{equation}
    \begin{aligned}
     \begin{pmatrix}
     1&1&0&0&0&1\\
     0&1&1&1&0&0\\
     0&0&0&1&1&1
     \end{pmatrix}
    \end{aligned}
\end{equation}
\begin{tikzpicture}[auto,vertex/.style={draw,circle}]
    \node[vertex] (1) {$v_1$};
    \node[vertex,above right=1cm of 1] (2) {$v_2$};
    \node[vertex,below right=1cm of 2] (3) {$v_3$};
    
    \path[-{Stealth[]}]
      (1) edge node {1} (2) 
      (2) edge node {2} (3)
      (3) edge node {3} (1);
\end{tikzpicture}

\end{document}

但这会导致图形相对于邻接矩阵位于左下方。另外,我如何通过将相应的节点对直接放置在矩阵列的上方(并对齐)并将边缘放置在行的左侧来指示矩阵的列和行的含义?

答案1

一个简单的解决方案\raisebox

\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta}

    \begin{document}

\begin{equation}
    \begin{alignedat}{2}
     & \begin{pmatrix}
     1&1&0&0&0&1\\
     0&1&1&1&0&0\\
     0&0&0&1&1&1
     \end{pmatrix}
  & \hspace{4em}& \raisebox{-0.5\height}{\begin{tikzpicture}[auto,vertex/.style={draw,circle}]
    \node[vertex] (1) {$v_1$};
    \node[vertex,above right=1cm of 1] (2) {$v_2$};
    \node[vertex,below right=1cm of 2] (3) {$v_3$};
%
    \path[-{Stealth[]}]
      (1) edge node {1} (2)
      (2) edge node {2} (3)
      (3) edge node {3} (1);
\end{tikzpicture}}
    \end{alignedat}
\end{equation}

\end{document} 

在此处输入图片描述

相关内容