Latex tikzpicture adiciona rótulos aos ramos da hierarquia

Latex tikzpicture adiciona rótulos aos ramos da hierarquia

Eu tenho uma hierarquia:

\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}

Fiquei me perguntando, como eu mudaria meu látex para que houvesse etiquetas em alguns ramos da figura? Assim, por exemplo, a palavra 'esquerda' estaria no galho entre 'Raiz' e '1' e a palavra 'direita' estaria no galho entre 'Raiz' e '2'. Obrigado.

Responder1

Isso pode ser feito com edge from parent node. Observe que \tikzstyleestá obsoleto.

\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}

insira a descrição da imagem aqui

Com a floresta, este empreendimento torna-se indiscutivelmente mais simples.

\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}

insira a descrição da imagem aqui

informação relacionada