问题描述
我正在尝试使用 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_1
,v_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}