tikz 中的 LP 图,标签

tikz 中的 LP 图,标签

我有这个:

\documentclass[a4paper,oneside,article]{memoir}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{center}
    \begin{tikzpicture}[auto,node distance=2cm,thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]
    \node[main node] (1) {1};
    \node[main node] (2) [below of=1] {2};

    \path[every node/.style={font=\sffamily\small}]
    (1) edge node [left] {4} (2);
    \end{tikzpicture}
\end{center}
\end{document}

哪个能生产出左边的那个,想要右边的那个。有什么想法吗? 在此处输入图片描述

当然可以随意改变这两个数字的值:-)

编辑 如果超过两个注释 在此处输入图片描述

答案1

像这样吗?

\documentclass[a4paper,oneside,article]{memoir}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{center}
    \begin{tikzpicture}[auto,
       node distance = 2cm, thick, 
    main node/.style = {circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]
    \node[main node,
          label={[xshift=-1ex]below:2},
          label={[yshift=1.2ex]right:3}]   (n1) {1};
    \node[main node,
          label={[xshift=-1ex]above:4},
          below=of n1]                  (n2) {2};
    \node[main node,
          label={[yshift=1.2ex]left:5},
          right=of n1]                  (n3) {3};
    \draw   (n1) -- (n2)
            (n1) -- (n3);
    \end{tikzpicture}
\end{center}
\end{document}

编辑:在上面的 MWE 中,我按照您在编辑问题时的要求添加了第三个节点。您可以根据需要向节点添加任意数量的标签。它们的位置可以用abovebelowleftrightabove left以及角度来声明,例如3045...

答案2

chains如果您使用大量此类节点,您可能会考虑使用该库。

在以下示例中,节点外部的黑色数字只是常规label数字,数字表示该特定点label相对于节点的角度。灰色标签使用选项pin并指示chain节点属于哪个节点。我使用了 2 条链 -mainsecondary- 并进行了几次方向更改。节点内部的数字反映了构造顺序。

标记节点

请注意,可以将现有节点添加到链中 - 这是将第一个节点secondary最初放在链上之后添加到链中的方式 - 并且可以在稍后恢复之前切换出链 - 这是在切换出此链以构造链之后将main最后一个节点添加到链中的方式。mainsecondary

请参阅手册以获取更多信息,包括有关如何构造branch我在这里未使用过的详细信息。

\documentclass[tikz,border=5pt,mult,varwidth]{standalone}
\usetikzlibrary{chains}

\begin{document}

  \begin{tikzpicture}
    [
      auto,
      thick,
      start chain=main going below,
      start chain=secondary going right,
      node distance=20mm,
      every on chain/.style={circle, fill=blue!20, draw, font=\sffamily\Large\bfseries, join},
      every join/.style={thick},
      every label/.append style={font=\sffamily\small},
      every pin/.append style={font=\sffamily\scriptsize, text=gray, align=center},
      every pin edge/.append style={<-, shorten <=2.5pt},
    ]
    \node [on chain=main, label=-100:-100, label=10:10, pin=-45:{on main\\on secondary}] {1};
    \node [on chain=main, label=100:100, label=-170:-170, pin=-0:on main] {2};
    \chainin (main-1) [on chain=secondary];
    \node [on chain, pin=0:on secondary, label=170:170, label=-80:-80] {3};
    \node [on chain, continue chain=going below, pin=0:on secondary\\new direction, label=80:80, label=-80:-80] {4};
    \node [on chain, pin=135:on secondary, label=80:80, label=10:10] {5};
    \node [on chain, continue chain=going right, pin=90:on secondary\\resume previous direction, label=170:170] {6};
    \node [on chain=main, continue chain=going left, pin=-90:on main\\change direction, label=10:10] {7};
  \end{tikzpicture}

\end{document}

相关内容