二叉树布局的边缘样式

二叉树布局的边缘样式

根据这个答案:TikZ:使用“子”符号将边变成箭头 可以使用键设置节点/子符号的边样式edges from parent/.style

但是,如果我使用binary tree layout

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{graphdrawing}
\usegdlibrary{trees}

\begin{document}

\begin{tikzpicture}[
    binary tree layout,
    edge from parent/.style={->, thick},
  ]
  \node {a}
    child{node {b} }
    child{node {c} }
    ;
\end{tikzpicture}


\end{document}

我怎样才能设计边缘binary tree layout

答案1

如果您正在使用 Lua 图形绘制工具,为什么不使用图形语法呢?

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}

\begin{document}

\tikz\graph [binary tree layout] { a -> {b, c}};

\end{document}

图树

要设置边的样式,您只需将信息添加到图形规范中即可。例如:

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}

\begin{document}

  \tikz\graph [binary tree layout, edges={thick}] { a -> {b, c}};

\end{document}

样式化边缘

node请注意,如果您更喜欢使用标准/语法指定图表child,那么您实际上并没有使用该graphs库,尽管您仍然可以使用该graphdrawing库(见下文)。在这种情况下,可能更容易放弃binary tree layout并自己指定树的形状。在这种情况下,只需放弃图形和图形绘制内容:

\documentclass[tikz,border=10pt]{standalone}
\begin{document}
\begin{tikzpicture}[
    edge from parent/.style={draw, ->, thick},
  ]
  \node {a}
    child{node {b} }
    child{node {c} }
    ;
\end{tikzpicture}
\end{document}

输出非常相似:

非图树

您还可以使用graphdrawing更标准语法的库。在这种情况下,您可以使用 将样式应用于边缘every edge/.style={}。但是,指定->显然没有效果:

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
  [binary tree layout, every edge/.style={draw=blue, thick, ->}]
  \node {a}
    child{node {b} }
    child{node {c} }
    ;
\end{tikzpicture}
\end{document}

尽管设计了边缘,但没有箭头

据推测对此有一些解决方法,但我的简短实验并没有发现它。

相关内容