Tikz 层次结构图 - 分支

Tikz 层次结构图 - 分支

我试图将 Rachel Brown 全部放在一行上,并在 Rachel Brown 下方 - 三个分支分别写着 Mary Brown、Laura Brown 和 Emma Brown。我还试图让年龄显示在每名姓名下方,例如 Hannah Brown 下方需要写上(年龄:23​​)等。非常感谢!

\documentclass{article}
\usepackage{tikz-qtree}

\begin{document}
\tikzset{edge from parent/.style=
{draw, edge from parent path={(\tikzparentnode.south)
-- +(0,-8pt)
-| (\tikzchildnode)}},
blank/.style={draw=none}}
\begin{tikzpicture}
\matrix
{
\node{\Tree 
 [.{Hannah Brown}
  [.Rachel Brown ]]};\\
};           
\end{tikzpicture}

\end{document}

答案1

要获得Rachel Brown一行,请像 Hannah 一样操作,然后添加括号 ( {})。如果添加,every tree node/.style={align=center}您可以使用\\ 在节点中添加换行符,然后您可以使用Rachel Brown\\Age: 23将年龄放在名称下方。要获得三个分支,您需要编写类似[ .root [ .{first branch}] [ .{second branch} ] [ .{third branch} ] ]。请注意,每个分支都在定义根的一对括号内。

为了正确对齐中间的树枝,请将其添加minimum width=\widthof{Hannah Brown}every tree node样式中。您也可以使用特定长度(例如 3 厘米)代替\widthof{the longest name in the family}

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-qtree}

\begin{document}
\tikzset{edge from parent/.style=
{draw, edge from parent path={(\tikzparentnode.south)
-- +(0,-8pt)
-| (\tikzchildnode)}},
blank/.style={draw=none},
level distance=45pt}
\begin{tikzpicture}[every tree node/.style={align=center,minimum width=\widthof{Hannah Brown}}]
\Tree 
 [ .{Hannah Brown}
   [ .{Rachel Brown\\Age: 23} 
     [ .{Mary Brown\\Age: 1} ]
     [ .{Laura Brown\\Age: 2} ]
     [ .{Emma Brown\\Age: 3} ] ] ]
\end{tikzpicture}

\end{document}

相关内容