我的乳胶代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
% draw a tree
\tikz [grow'=up, binary tree layout, nodes={circle,draw}]
\node {9}
child { node {8}
child { node {6}
child { node {1} }
child { node {2} }
}
child { node {7}
child { node {3} }
child { node {4} }
}
}
child { node {5} };
\end{tikzpicture}
\end{figure}
\end{document}
在输出中,节点 5 与节点 8 处于同一级别
在我的预期输出中,节点 5 应该与节点 1、2、3 和 4 位于顶层。
我怎样才能将节点 5 移到顶部?
答案1
forest
如果是一种选择的话,这是非常简单的。
\documentclass[border=5pt]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={circle, draw, l sep'+=2pt, grow'=90, edge+=blue, fill=blue, text=white, font=\sffamily, child anchor=parent, parent anchor=children},
for leaves={tier=leaf},
[9
[8
[6
[1]
[2]
]
[7
[3]
[4]
]
]
[5]
]
\end{forest}
\end{document}
根据 Zarko 的评论,我注意到只有部分子元素的边缘是从父元素上的一个公共点绘制的。如果您不想要这种情况,您可以删除parent anchor=children
和/或child anchor=parent
更有选择地应用该选项。
\documentclass[border=5pt]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={circle, draw, l sep'+=2pt, grow'=90, edge+=blue!50!gray, fill=blue!50!gray, text=white, font=\sffamily, inner sep=1.5pt,},
for leaves={tier=leaf},
[9
[8
[6
[1]
[2]
]
[7
[3]
[4]
]
]
[5]
]
\end{forest}
\end{document}
如果forest
没有这个选项,请告诉我,我可以删除它。