У меня есть разветвленное дерево, которое в настоящее время показывает только узлы. Я хочу немного больше его пометить, но не уверен, как это сделать. Я включил код, который у меня есть на данный момент, а также изображение того, как я хочу, чтобы это выглядело. Как мне это сделать?
\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}
решение1
\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}
решение2
Если кому-то нужно нарисовать много таких, вот стиль Forest, nodes alone
который автоматически форматирует и маркирует дерево. Очевидно, что детали того, что идет в метках, можно настроить по мере необходимости. Я предполагаю, что числа в MWE представляют номер уровня ( t=0, t=1, ...
и R_0=??, R_1=??, ...
) и количество узлов на этом уровне ( 1, 1, 2, 1, 3
). Измените по желанию.
Я включил второй, более крупный пример, чтобы проиллюстрировать потенциал: как только стиль определен, сами деревья можно указать очень кратко.
Например, оригинальное дерево можно создать с помощью
\begin{forest}
nodes alone
[, baseline
[
[
[
[][][]
]
]
[]
]
]
\end{forest}
и более крупное демонстрационное дерево с
\begin{forest}
nodes alone
[, baseline
[
[
[
[][][]
]
]
[[[[[[[[][[[[[]]][]]][[][]]][][][[]]]]][[[][]]]][[]]][[][[][]]]]
]
[
[[[]][][[[]]]]
]
]
\end{forest}
Полный код:
\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}