
계층 구조가 있습니다.
\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}
그림의 일부 지점에 라벨이 있도록 라텍스를 어떻게 바꿀 수 있는지 궁금합니다. 예를 들어 'left'라는 단어는 'Root'와 '1' 사이의 가지에 있고 'right'라는 단어는 'Root'와 '2' 사이의 가지에 있습니다. 감사해요.
답변1
이는 으로 수행할 수 있습니다 edge from parent node
. 더 이상 \tikzstyle
사용되지 않습니다.
\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}
숲을 이용하면 이 사업은 틀림없이 더욱 간단해집니다.
\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}