Como rotular uma borda de uma árvore que foi adicionada manualmente?

Como rotular uma borda de uma árvore que foi adicionada manualmente?

Pode-se usar o TikZ para criar uma árvore manualmente ou usar opacote florestalpara tornar o processo mais fácil. Abaixo mostro como posso usar opacote florestalpara criar uma árvore binária e transformá-la em uma árvore recombinante usando TikZ para desenhar algumas arestas manualmente. Embora eu possa adicionar um rótulo a qualquer borda que não tenha sido adicionada manualmente (como faço abaixo com o rótuloCanguru), não consigo descobrir como adicionar um rótulo a uma aresta queeraadicionado manualmente. Por exemplo, como rotulo a aresta de nó $S_1(T)=4$a nó $S_2(TH)=S_2(HT)=8$(veja a imagem a seguir)?

árvore binária recombinante

Eu simplesmente tentei copiar e colar o mesmo comando (ou seja edge label={node [near end, above left, font=\footnotesize]{Kangaroo}}) no código abaixo depois (T) -- (TH), mas não funcionou.

\begin{forest}  
for tree={grow'=east}
[{$S_0=8$ },
    [{$S_1(T)=4$ },name=T,  
        [{$S_2(TT)=2$}, edge label={node [near end, above  left, font=\footnotesize]{Kangaroo}} ]
        [, phantom]
    ]
    [, phantom
        [{\qquad $S_2(TH)=S_2(HT)=8$},name=TH  ] 
    ]
    [{$S_1(H)=16$}, name=H
        [, phantom]
        [{$S_2(HH)=32$} ] 
    ]   
] 
\draw (T) -- (TH)  (H) -- (TH);
\end{forest}

Para sua informação, os nós [,fantasmas] são apenas nós vazios para ajudar no espaçamento, eles não são realmente necessários.

Responder1

Você está procurando l sepdimensão

Também a slopedversão de etiqueta com posicionamento pos=0.5ou meio ajustado com a ajuda deyshift

insira a descrição da imagem aqui

\begin{forest} 
    for tree={grow'=east, s sep=2em, l sep=2cm}
    [{$S_0=8$ },
    [{$S_1(T)=4$ },name=T,  
    [{$S_2(TT)=2$}, edge label={node [pos=0.5, above, yshift=-4pt ,sloped, 
     font=\scriptsize]{Kangaroo}} ]
    [, phantom]
    ]
    [, phantom
    [{\qquad $S_2(TH)=S_2(HT)=8$},name=TH  ] 
    ]
    [{$S_1(H)=16$}, name=H
    [, phantom]
    [{$S_2(HH)=32$} ] 
    ]   
    ] 
    \draw (T) -- (TH)  (H) -- (TH);
\end{forest}

EDITAR

insira a descrição da imagem aqui

Adicione o seguinte -

\node at ($(T)!0.5!(TH)$)
        [rotate=-22, yshift=5pt]
        {\footnotesize\color{red} Kangaroo};

MWE

 \begin{forest} 
    for tree={grow'=east, s sep=2em, l sep=2cm}
    [{$S_0=8$ },
    [{$S_1(T)=4$ },name=T,  
    [{$S_2(TT)=2$}, edge label={node [pos=0.5,above,yshift=-4pt,sloped, 
    font=\footnotesize]{Kangaroo}} ]
    [, phantom]
    ]
    [, phantom
    [{\qquad $S_2(TH)=S_2(HT)=8$},name=TH  ] 
    ]
    [{$S_1(H)=16$}, name=H
    [, phantom]
    [{$S_2(HH)=32$} ] 
    ]   
    ] 
    \draw (T) -- (TH)  (H) -- (TH);
    \node at ($(T)!0.5!(TH)$)
    [rotate=-22, yshift=5pt]
    {\footnotesize\color{red} Kangaroo};
\end{forest}

informação relacionada