![在 tikz 中标记边缘](https://linux22.com/image/288106/%E5%9C%A8%20tikz%20%E4%B8%AD%E6%A0%87%E8%AE%B0%E8%BE%B9%E7%BC%98.png)
我有以下图表,我想在其中标记边缘。有没有办法将其集成到绘图命令中?
{
\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
或右侧。 - 可以通过添加边缘选项 a
swap
或缩短来本地更改报价位置的全局设置'
。 - 如果您不喜欢标签文本与边缘对齐,则可以
sloped
从边缘引号样式中删除选项。