如何使用 tkz-graph 自动标记顶点

如何使用 tkz-graph 自动标记顶点

问题描述

我正在尝试使用 tkz-graph 包创建一个带标记的有向图,这样顶点“自动”标记为 $v_1$、$v_2$ 等,从圆“顶部”的 $v_1$ 开始,然后顺时针旋转。

梅威瑟:

\documentclass{article}
\usepackage{tkz-graph}
\begin{document}
    \begin{tikzpicture}[rotate=90]
        \GraphInit[vstyle=Hasse]
        \tikzset{VertexStyle/.style={
        shape=circle,
        inner sep = 2pt,
        outer sep = 1pt,
        minimum size = 7pt,
        draw}
        }
        \Vertices[unit=2]{circle}{v1,v2,v3,v4,v5,v6,v7}
        \tikzstyle{EdgeStyle}=[post]
        \Edges(v1,v4,v3)
        \Edges(v4,v5,v6)
        \Edge(v7)(v1)
        \Edge(v2)(v1)
        \Edge(v2)(v3)
    \end{tikzpicture}
\end{document}

如何添加所需的标签?

答案1

最简单的方法是将 改为 ,vstyle因为Classic这会自动添加标签。由于您要旋转图形,因此需要设置选项Lpos=90

最后,您可以使用Math允许使用简单数学表达式来命名顶点的选项。因此,您可以直接命名它们v_1v_2等等。

我认为您想以逆时针方向标记顶点,因为这也是它们在图中的定义方式:

\documentclass{article}
\usepackage{tkz-graph}
\begin{document}
    \begin{tikzpicture}[rotate=90]
        \GraphInit[vstyle=Classic]
        \tikzset{VertexStyle/.style={
                shape = circle,
                inner sep = 2pt,
                outer sep = 1pt,
                minimum size = 7pt,
                draw
            },
            EdgeStyle/.style={
                post
            }
        }
        \Vertices[unit=2, Lpos=90, Math] {circle}
            {v_1,v_2,v_3,v_4,v_5,v_6,v_7}
        \Edges(v_1,v_4,v_3)
        \Edges(v_4,v_5,v_6)
        \Edge(v_7)(v_1)
        \Edge(v_2)(v_1)
        \Edge(v_2)(v_3)
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容