So beschriften Sie Knoten in einem Baumdiagramm mit Tikz

So beschriften Sie Knoten in einem Baumdiagramm mit Tikz

Ich habe einen verzweigten Baum, der derzeit nur Knoten anzeigt. Ich möchte ihn etwas ausführlicher beschriften, bin mir aber nicht sicher, wie das geht. Ich habe den Code, den ich bisher habe, und auch ein Bild davon, wie es aussehen soll, beigefügt. Wie soll ich das machen?

Bildbeschreibung hier eingeben

\begin{figure}[h]
\begin{center}
\begin{tikzpicture}
    \tikzstyle{every node}=[circle,inner sep=1.5pt,draw,fill]
\draw node {} child {node {}
    child {
        node {}
        child { node {} child { node {} }child {node {}} child {node {}  }}
    }
    child { node {} }}

;
\end{tikzpicture}
\caption{ Branched tree}
\end{center}
\end{figure}

Antwort1

Bildbeschreibung hier eingeben

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}%
   [tn/.style={circle,inner sep=1.5pt,draw,fill}% tree node
   ]
   \draw 
     node[tn] (1) {}
       child { node[tn] (11) {}
         child { node[tn] (111) {}
           child { node[tn] (1111) {}
             child { node[tn] (11111) {} }
             child { node[tn] (11112) {} }
             child { node[tn] (11113) {} }
           }
         }
         child { node[tn] (112) {}}
       };
    \node[left =of 11111] (t4) {$t=4$};
    \node      at (1    -| t4) {$t=0$};
    \node      at (11   -| t4) {$t=1$};
    \node      at (111  -| t4) {$t=2$};
    \node      at (1111 -| t4) {$t=3$};
    \node[right=of 11113] (R4) {$R_4=3$};
    \node      at (1    -| R4) {$R_0=1$};
    \node      at (11   -| R4) {$R_1=1$};
    \node      at (111  -| R4) {$R_2=2$};
    \node      at (1111 -| R4) {$R_3=1$};
\end{tikzpicture}
\end{document}

Antwort2

Falls jemand viele davon zeichnen muss, gibt es hier einen Forest-Stil, nodes alone, der den Baum automatisch formatiert und beschriftet. Natürlich können die Details der Beschriftungen nach Bedarf angepasst werden. Ich gehe davon aus, dass die Zahlen im MWE die Ebenennummer ( t=0, t=1, ...und R_0=??, R_1=??, ...) und die Anzahl der Knoten auf dieser Ebene ( 1, 1, 2, 1, 3) darstellen. Ändern Sie sie nach Bedarf.

Ich habe ein zweites, größeres Beispiel beigefügt, um das Potenzial zu veranschaulichen: Sobald der Stil definiert ist, können die Bäume selbst sehr präzise angegeben werden.

Demo-Bäume

Der ursprüngliche Baum kann beispielsweise erzeugt werden mit

\begin{forest}
  nodes alone
  [, baseline
    [
      [
        [
          [][][]
        ]
      ]
      []
    ]
  ]
\end{forest}

und der größere Demonstrationsbaum mit

\begin{forest}
  nodes alone
  [, baseline
    [
      [
        [
          [][][]
        ]
      ]
      [[[[[[[[][[[[[]]][]]][[][]]][][][[]]]]][[[][]]]][[]]][[][[][]]]]
    ]
    [
      [[[]][][[[]]]]
    ]
  ]
\end{forest}

Vollständiger Code:

\documentclass[border=10pt]{standalone}
\usepackage{forest}
\forestset{
  nodes alone/.style={
    for tree={
      parent anchor=center,
      child anchor=center,
      anchor=center,
      inner sep=1.5pt,
      circle,
      fill,
      s sep'+=10pt,
    },
    before typesetting nodes={
      tempcounta/.max={>O{level}}{r,tree},
      for nodewalk={
        root,
        tikz+={
          \coordinate (w) at (current bounding box.west);
          \coordinate (e) at (current bounding box.east);
        },
        until={>OR={level}{tempcounta}}{next node},
        Nodewalk={}{current and ancestors}{
          tempcountc/.option=level,
          tempcountd'=0,
          Nodewalk={}{filter={fake=root,tree}{>OR={level}{tempcountc}}}{tempcountd'+=1},
          tikz+/.process={
            ORw2{level}{tempcountd}{
              \node [anchor=east, xshift=-10mm] at (w |- .center) {$t=##1$};
              \node [anchor=west, xshift=10mm] at (e |- .center) {$R_{##1}=##2$};
            }
          },
        }
      }{},
    },
  },
}
\begin{document}
\begin{forest}
  nodes alone
  [, baseline
    [
      [
        [
          [][][]
        ]
      ]
      []
    ]
  ]
\end{forest}
\begin{forest}
  nodes alone
  [, baseline
    [
      [
        [
          [][][]
        ]
      ]
      [[[[[[[[][[[[[]]][]]][[][]]][][][[]]]]][[[][]]]][[]]][[][[][]]]]
    ]
    [
      [[[]][][[[]]]]
    ]
  ]
\end{forest}
\end{document}

verwandte Informationen