
人們可以使用 TikZ 手動創建一棵樹,或使用森林包讓這個過程變得更容易。下面我展示如何使用森林包建立一棵二元樹,並使用 TikZ 手動繪製一些邊將其變成重組樹。雖然我可以將標籤添加到任何未手動添加的邊緣(就像我在下面使用標籤所做的那樣)袋鼠),我不知道如何將標籤新增到邊緣曾是手動新增。例如,如何標記節點$S_1(T)=4$
到節點的邊$S_2(TH)=S_2(HT)=8$
(見下圖)?
edge label={node [near end, above left, font=\footnotesize]{Kangaroo}}
我只是嘗試在下面的程式碼中複製貼上相同的命令(即) (T) -- (TH)
,但它不起作用。
\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}
僅供參考,[,phantom] 節點只是幫助間距的空節點,它們並不是真正必要的。
答案1
您正在尋找l sep
維度
也可以透過以下方式調整sloped
標籤的版本:定位或中途調整pos=0.5
yshift
\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}
編輯
添加以下內容——
\node at ($(T)!0.5!(TH)$)
[rotate=-22, yshift=5pt]
{\footnotesize\color{red} Kangaroo};
微量元素
\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}