
Ich habe eine Hierarchie:
\begin{figure}[!h]
\begin{center}
\resizebox{\textwidth}{!}{%
\begin{tikzpicture}[level 1/.style={sibling distance=7cm},
level 2/.style={sibling distance=2cm},
level 3/.style={sibling distance=2.5cm}, align = flush center]
\tikzstyle{every node}=[draw,rectangle]
\node {Root}
[style=edge from parent fork down]
child {
node {1}
child {node {1.1}
child {node {1.1.1} }
child {node {1.1.2} }
child {node {1.1.3} }
}
child {node {1.2}}
child {node {1.3}}
}
child {
node {2}
child {node {2.1}}
child {node {2.2}
child {node {2.2.1} }
child {node {2.2.2} }
child {node {2.2.3} }
}
child {node {2.3}}
}
;
\end{tikzpicture}
}
\end{center}
\end{figure}
Ich habe mich gefragt, wie ich mein Latex ändern kann, damit einige Zweige der Figur beschriftet sind. So würde sich beispielsweise das Wort „links“ auf dem Zweig zwischen „Wurzel“ und „1“ befinden und das Wort „rechts“ auf dem Zweig zwischen „Wurzel“ und „2“. Danke.
Antwort1
Dies ist mit möglich edge from parent node
. Beachten Sie, dass dies \tikzstyle
veraltet ist.
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[level 1/.style={sibling distance=7cm},
level 2/.style={sibling distance=2cm},
level 3/.style={sibling distance=2.5cm}, align = flush center]
\tikzset{every node/.append style={draw,rectangle}}
\node {Root}
[style=edge from parent fork down]
child {
node {1}
child {node {1.1}
child {node {1.1.1} }
child {node {1.1.2} }
child {node {1.1.3} }
}
child {node {1.2}}
child {node {1.3}}
edge from parent node[pos=0.25,above,draw=none]{left}%<-added
}
child {
node {2}
child {node {2.1}}
child {node {2.2}
child {node {2.2.1} }
child {node {2.2.2} }
child {node {2.2.3} }
}
child {node {2.3}}
edge from parent node[pos=0.25,above,draw=none]{right}%<-added
}
;
\end{tikzpicture}
\end{document}
Mit Wald wird dieses Unterfangen wohl einfacher.
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
for tree={grow=south,draw,s sep=2em},
forked edges
[Root
[1,edge label={node[pos=0.35,above]{left}}
[1.1
[1.1.1]
[1.1.2]
[1.1.3]
]
[1.2]
[1.3]
]
[2,edge label={node[pos=0.35,above]{right}}
[2.1]
[2.2
[2.2.1]
[2.2.2]
[2.2.3]
]
[2.3]
]
]
\end{forest}
\end{document}