使节点显示为带有外部标签的点

使节点显示为带有外部标签的点

我正在使用 TikZ 绘制一个相当大的图表,其中的点是从 csv 文件生成的。 (Python 脚本从 csv 获取坐标,并输出相应的节点线。) 一个最小的例子是这样的:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\node (A) at (1,3) {A};
\node (B) at (1,1) {B};
\draw (A) -- (B);

\end{tikzpicture}
\end{document}

产生如下结果:

使用 TikZ

我如何使它看起来更像下面这样(忽略大写/小写差异):

使用 graphviz - 标签在外面,节点标记为点

答案1

如果你想稍微自动化一下,这里有一个解决方案:

节点作为点

label distance根据需要使用来放置标签并相应地设置节点的外观。

\documentclass{article}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}[
        label distance=2pt,
        every node/.style={
            draw,
            fill=black,
            circle,
            inner sep=0pt,
            minimum size=3pt}]
        \node[label=above left:a] (A) at (1,3) {};
        \node[label=above left:b] (B) at (1,1) {};
        \draw (A) -- (B);   
    \end{tikzpicture}
\end{document}

答案2

  1. 使用形状的节点circle
  2. 放一个标签在该节点上(该节点只是引用父节点位置的另一个节点)。
  3. 连接节点,TikZ 会自动选择它们的边界。

(这inner sep指定一个半径,将其乘以 √2 即可得到实际半径——它计算一个正方形的半径,正方形的边长为 2× 内间隔。Aminimum size指定圆的直径。

代码

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[dot/.style={shape=circle, fill, draw, inner sep=+1.5pt}]
\node[dot, label=above left:a] (A) at (1,3) {};
\node[dot, label=above left:b] (B) at (1,1) {};
\draw (A) -- (B);
\end{tikzpicture}

\begin{tikzpicture}[
  dot/.style={
    shape=circle, fill, draw, inner sep=+1.5pt,
    name={#1}, label={$#1$}, node contents=},
  label position=above left]
\node at (1,3) [dot=a];
\node at (1,1) [dot=b];
\draw (a) -- (b);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

答案3

瞧,只需使用标签

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\node[label={[left]:a},inner sep=0] (A) at (1,3) {$\bullet$};
\node[label={[left]:b},inner sep=0]  (B) at (1,1) {$\bullet$};
\draw(A) -- (B);

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容