如何更改 tikz-qtree 树边缘角度

如何更改 tikz-qtree 树边缘角度

我希望制作一棵树,其中边缘与子节点的角度在每一层都相同。我知道这可能会导致节点重叠。

我想要的东西看起来像这样:

具有恒定子边缘角度的树

但不幸的是我的树看起来像这样:

具有不同子边缘角度的树

我的树使用这个 LaTeX:

\tikzset{every tree node/.style={minimum width=2em,draw,circle},
         blank/.style={draw=none},
         edge from parent/.style=
         {draw,edge from parent path={(\tikzparentnode) -- (\tikzchildnode)}},
         level distance=1cm
}

\begin{tikzpicture}
\Tree [ .1 [ .2 \edge[blank]; \node[blank]{}; [ .4 \edge[blank]; \node[blank]{}; [ .5 \edge[blank]; \node[blank]{}; [ .6 \edge[blank]; \node[blank]{}; 7 ] ] ] ] 3 ]
\end{tikzpicture}

感谢帮助

答案1

我能够使用 tikz\node而不是 tikz-qtree来重新创建第一幅图像中的树\Tree

\begin{tikzpicture}
\node[circle,draw]{1}
  child{node[circle,draw]{2} child[missing] child{node[circle,draw]{4} child[missing] child{node[circle,draw]{5} child[missing] child{node[circle,draw]{6} child[missing] child{node[circle,draw]{7}}} } } }
  child{node[circle,draw]{3}} ;
\end{tikzpicture}

每个子节点具有相同角度的树

编辑: 这也可以使用 forest 来完成,它具有更好的语法:

\begin{forest}
for tree={draw,circle,calign=fixed edge angles}
[1 [2 [,phantom] [4 [,phantom] [5 [,phantom] [6 [,phantom] [7 [,phantom] ]]]]] [3]]
\end{forest}

感谢@Jasper Habicht 建议使用森林。

相关内容