Skip to content

LaTeX 树形图绘制指南

使用 tikz 包绘制树形图

基本结构

以下是使用 tikz 绘制树形图的基本结构:

\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{trees}

\begin{document}

\begin{tikzpicture}
    % 绘制树的代码放在这里
\end{tikzpicture}

\end{document}

绘制简单的树

以下示例展示如何绘制一颗简单的树:

\begin{tikzpicture}
\node {root}
    child {node {1}}
    child {node {2}}
    child {node {3}}
    child {node {4}};
\end{tikzpicture}

效果如下: 简单树

绘制森林

tikz 中,可以通过创建多个树来构成一片森林:

\begin{tikzpicture}
\node {parent}
    child {node {child 1}}
    child {node {child 2}}
    child {node {child 3}}
    child {node {child 4}};
\end{tikzpicture}

\begin{tikzpicture}
\node at (0,2) {z}
    child {node {a}}
    child {node {b}}
    child {node {3}}
    child {node {4}};
\end{tikzpicture}

效果如下: 森林

绘制二叉树

绘制基础的二叉树:

\begin{tikzpicture}
\node {parent}
    child {node {child 1}}
    child {node {child 2}};
\end{tikzpicture}

效果如下: 二叉树

自定义颜色和样式

可以自定义节点和边的颜色、样式等:

\begin{tikzpicture}
\node [red] {parent}
    child [blue] {node {child 1}}
    child [green] {node {child 2}};
\end{tikzpicture}

效果如下: 自定义颜色

调整节点样式

可以通过设置 tikzpicture 的属性来调整节点样式:

\begin{tikzpicture}[level/.style={sibling distance=72pt, level distance=72pt},
                    every node/.style={align=center, inner sep=0, minimum size=50pt}]
\node [draw, circle] {parent}
    child {node[draw, circle] {child 1}}
    child {node[draw, circle] {child 2}};
\end{tikzpicture}

效果如下: 节点样式

解决节点圆重叠问题

如果节点内容较长导致圆圈重叠,可以通过调整 sibling distancelevel distance 来解决:

\begin{tikzpicture}[level/.style={sibling distance=150pt/#1, level distance=72pt},
                    every node/.style={align=center, inner sep=0, minimum size=55pt}]
\node [draw, circle] {pareakg,\\jgasjhgant}
    child {node[draw, circle] {childjasgfi1}}
    child {node[draw, circle] {childbafjskh,k2}};
\end{tikzpicture}

效果如下: 解决重叠

使用 tikz-qtree 包绘制树形图

基本结构

以下是使用 tikz-qtree 绘制树形图的基本结构:

\documentclass[10pt]{article}
\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture}
    % 绘制树的代码放在这里
\end{tikzpicture}

\end{document}

绘制简单的树

使用 tikz-qtree 绘制简单的树:

\begin{tikzpicture}
\Tree [.1 [.2 ] [.3 ] [.4 ] [.5 ]]
\end{tikzpicture}

效果如下: 简单树

绘制森林

tikz-qtree 中,可以通过多个 tikzpicture 环境来绘制森林:

\begin{tikzpicture}
\Tree [.1 [.2 ] [.3 ] [.4 ] [.5 ]]
\end{tikzpicture}

\begin{tikzpicture}
\Tree [.1 [.2 ] [.3 ] [.4 ] [.5 ]]
\end{tikzpicture}

效果如下: 森林

绘制二叉树

绘制基础的二叉树:

\begin{tikzpicture}
\Tree [.1 [.2 ] [.3 ]]
\end{tikzpicture}

效果如下: 二叉树

自定义样式

可以自定义边的样式和节点的样式:

\begin{tikzpicture}[dashed]
\Tree [.1 [.2 ] [.3 ]]
\end{tikzpicture}

\begin{tikzpicture}[semithick,->]
\Tree [.1 [.2 ] [.3 ]]
\end{tikzpicture}

效果如下: 自定义样式

绘制复杂二叉树

绘制复杂的二叉树可以通过嵌套子树来实现:

\begin{tikzpicture}
\Tree [.1 [.2 [.3 ] ] [.4 [.5 [.6 ] ] ]]
\end{tikzpicture}

效果如下: 复杂二叉树

参考资料

  1. 如何在 LaTeX 中画一个树状图(使用 tikz 和 tikz-qtree 包中的宏绘制树、森林、二叉树)
  2. Latex 学习笔记 (Ex2) 使用 LaTeX 画规则的树形图

通过以上指南,你可以使用 LaTeX 中的 tikztikz-qtree 包轻松绘制各种树形图。