我正在嘗試繪製一棵樹,該樹的內部節點只有一個子節點,但必須是定向的。
/
\
/\
\
/\
而不是典型的 qtree,其中所說的孩子只是「掛起」:
|
|
/ \
|
|
/ \
我認為(但我不知道如何)可能有看不見的葉子來強制方向,但也許(希望)有更好的解決方案?這可以在 qtree 或 tikz-qtree 中...
編輯:後續問題將是有用的,當節點沒有標記時,如何使每個分支(在直線上)不同 - 即,當樹連續有多個連接時,就像第二個例子一樣,如何我可以讓它們稍微分開一點,這樣它們就不會形成一條難以區分的直線嗎?
編輯2:謝謝你的回复,我現在有兩棵樹:
\documentclass[tikz]{standalone}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}\footnotesize
\Tree [ \edge node[midway,left] {000};
[ \edge[draw=none]; {} \edge node[midway,right] {111};
[
\edge node[midway,left] {0}; $U_2$
\edge node[midway,right] {11};
[ \edge[draw=none]; {} \edge node[midway,right] {11};
[ \edge node[midway,left] {0}; $U_1$
\edge node[midway,right] {1}; $U_3$ ] ] ] ]
\edge[draw=none]; {} ]
\end{tikzpicture}
\begin{tikzpicture}\footnotesize
\Tree [ \edge node[midway,right] {$U_1=U_2$, $U_1=U_3$};
[.. \edge node[midway,right] {$U_1=U_2$, $U_1=U_3$};
[ \edge node[midway,left] {$0$}; $U_2$
\edge node[midway,right] {$U_1\not=U_2$, $U_1 = U_3$}; [
\edge node[midway, right] {$U_1 = U_3$};
[ \edge node[midway, left] {$0$}; $U_1$
\edge node[midway, right] {$U_1\not=U_3$}; $U_3$ ] ] ] ] ]
\end{tikzpicture}
\end{document}
有什麼想法可以讓它們看起來更好嗎?
答案1
使用一個空節點並在其前面{}
放置。\edge[draw=none];
程式碼
\documentclass[tikz]{standalone}
\usepackage{tikz-qtree}
\tikzset{
n/.style={draw=none},
every node/.append style={inner ysep=+0pt,outer ysep=+0pt,minimum size=+0pt}
}
\begin{document}
\Tree
[.{}
[.{}
\edge[n];[.{} ]
[.{}
{}
[.{}
\edge[n];[.{} ]
[.{}
{}
{}
]
]
]
]
\edge[n];{}
]
\end{document}
輸出(未激活和every node
激活樣式時)
答案2
您也可以使用xshift
(和yshift
) 來微調您想要的節點位置。
\documentclass[tikz]{standalone}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}\footnotesize
\Tree [.{a}
\edge node[midway,left] {1};
[.\node[xshift=0.5cm,inner sep=0pt,minimum size=0pt] {}; \edge node[midway,left] {2}; {c} ]
]
\end{tikzpicture}