在 tikz 中标记边缘

在 tikz 中标记边缘

我有以下图表,我想在其中标记边缘。有没有办法将其集成到绘图命令中?

{
\begin{figure}
\begin{center}
\begin{tikzpicture}[every node/.style={circle, draw, scale=.8, fill=gray!50}, scale=1.0, rotate = 180, xscale = -1]

\node (1) at ( 2.55, 3.0) {1};
\node (2) at ( 3.87, 0.92) {2};
\node (3) at ( 6.85, 0.92) {3};
\node (4) at ( 8.17, 3.0) {4};
\node (5) at ( 6.85, 5.0) {5};
\node (6) at ( 3.87, 5.0) {6};
\node (7) at ( 10.2, 3.0) {7};
\node (8) at ( 12.2, 3.0) {8};

\draw (2) -- (1);
\draw (3) -- (2);
\draw (4) -- (3);
\draw (7) -- (4);
\draw (8) -- (7);
\draw (6) -- (1);
\draw (5) -- (6);
\draw (4) -- (5);

\end{tikzpicture}
\caption{Weight 2}
\label{fig:wt2}
\end{center}
\end{figure}
}

答案1

您可以向绘图命令添加新节点来创建标签:

\draw (Point1) -- (Point2) node [<position>, fill=white] {Label Text};

位置参数可以是以下之一:

  • 中途
  • 接近尾声
  • 即将开始

您还可以在绘制命令创建的连接器上方或下方设置标签。因此您可以使用

  • 多于
  • 以上=10pt
  • 以下
  • 低于=10pt
  • ...

如果您想在图纸中创建许多标签,我建议创建一个分配给每个标签节点的标签样式。

编辑-更多信息:

如果您想要调整标签及其位置并将它们放置在曲线上,请使用以下代码:

\documentclass[border=6mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \x [count=\i] in {midway, at start, near start, very near start, at end, near end, very near end} {
  \draw (0,-\i) .. controls ++(1,1) and ++(-1,1) .. ++(4,0) node [\x, sloped, fill=white] () {\x};
}
\end{tikzpicture}
\end{document}

您还可以在手册在第 195 页

答案2

八年后……

  • 对于边的标记,我会使用quotes库。使用它来添加标签的代码比使用节点时更短,因此不容易出错。
  • 在绘制图形时(至少对我而言)使用相对坐标进行顶点定位似乎很方便:
\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning, 
                quotes}


\begin{document}
    \begin{tikzpicture}[
node distance = 15mm and 15mm,
     V/.style = {circle, draw, fill=gray!30},
every edge quotes/.style = {auto, font=\footnotesize, sloped}
                    ]
    \begin{scope}[nodes=V]
\node (1)   {1};
\node (2) [above right=of 1]    {2};
\node (3) [right=of 2]          {3};
\node (4) [below right=of 3]    {4};
\node (5) [below  left=of 4]    {5};
\node (6) [left= of 5]          {6};
\node (7) [right=of 4]          {7};
\node (8) [right=of 7]          {8};
    \end{scope}
\draw   (1)  edge["A"] (2)
        (2)  edge["B"] (3)
        (3)  edge["C"] (4)
        (4)  edge["D"] (5)
        (5)  edge["E"] (6)
        (6)  edge["F"] (1)
%        
        (4)  edge["G"] (7)
        (7)  edge["H"] (8);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

  • 相反,使用字母作为边缘标签,您可以使用任何其他文本或数学。
  • 您可以通过选项“auto=right”全局确定边缘标签(引号)位于边缘方向的左侧auto或右侧。
  • 可以通过添加边缘选项 aswap或缩短来本地更改报价位置的全局设置'
  • 如果您不喜欢标签文本与边缘对齐,则可以sloped从边缘引号样式中删除选项。

相关内容