将节点文本放置在节点旁边的好方法(TikZ 库“图表”)

将节点文本放置在节点旁边的好方法(TikZ 库“图表”)

我想使用 创建图表\usetikzlibrary{graphs}。默认情况下,我希望用填充的黑点作为节点,并在其旁边显示节点名称。

到目前为止,我最好的解决方案是

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\begin{document}

\begin{tikzpicture}
    \graph [empty nodes, % remove node text
            no placement, nodes={ 
                circle, draw, fill=black,
                inner sep=0pt, outer sep=0pt,
                minimum size=2mm
            }
    ] {
        % manually specify node text
        1[label=left:\(1\), x=0, y=-1]
    };
\end{tikzpicture}

\end{document}

有没有更好/更直观的解决方案来解决我的问题?

答案1

您可以使用\tikzgraphnodetext及其变体访问图表语法中的<name>和的值<text>

<name>/<text> [<options>]

使用

label={\tikzgraphnodetext:\(\tikzgraphnodename\)}

作为您的一部分nodes允许您改为书写1/left。您也可以使用类似于在的1 left样式中拆分的样式,但这意味着如果您想引用它,您总是需要使用。\tikzgraphnodename1 left

这样,您就可以使用1

代码

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\begin{document}
\tikz
\graph [
  empty nodes, % remove node text
  no placement,
  nodes={
    circle, draw, fill=black,
    inner sep=0pt, outer sep=0pt,
    minimum size=2mm,
    label={\tikzgraphnodetext:\(\tikzgraphnodename\)}
  }
] {
    1/left        [x=0, y=-1],
    2/right       [x=1, y=-1],
    3/below right [x=0, y= 0],
    4/above right [x=1, y= 0];
    1 -> {2, 3[> bend left]}
      -> 4
};
\end{document}

输出

在此处输入图片描述

相关内容