tikz 水平概率树

tikz 水平概率树

我正在寻找一种方法来用 tikz 创建一个简单的水平概率树,类似于这个:

在此处输入图片描述

我在 texample.net 上看到了一些示例,但没有人向我展示如何水平创建每个路径。

答案1

一种选择是使用强大的forest包裹:

\documentclass{article}
\usepackage{forest}

\begin{document}

\def\getfirst#1;#2\endget{#1}
\def\getsecond#1;#2\endget{#2}
\forestset{declare toks={elo}{}}
\begin{forest}
for tree={
  grow=0,
  calign=first,
  s sep=2cm,
  l=2cm,
},
before typesetting nodes={
  for tree={content=\strut$#1$}
},
decision edge label/.style n args=3{
  edge label/.expanded={
    node[midway,auto=#1,anchor=#2,\forestoption{elo}]{\strut#3}
  }
},
decision/.style={if n=1
  {decision edge label={below}{north}{$#1$}}
  {decision edge label={left}{east}{$#1$}}
},
delay={for descendants={
  decision/.expanded/.wrap pgfmath arg={\getsecond#1\endget}{content},
  content/.expanded/.wrap pgfmath arg={\getfirst#1\endget}{content},
  }
},
[
  [\bar{A};\frac{4}{9} 
    [\bar{A};\frac{3}{8}  
      [\bar{A};\frac{2}{7} 
        [\bar{A};\frac{1}{6} 
          [; ,no edge] [A;\frac{5}{9},elo={xshift=-3pt}] 
        ] [A;\frac{5}{8},elo={xshift=-3pt}]
      ] [A;\frac{5}{7},elo={xshift=-3pt}] 
    ] [A;\frac{5}{6},elo={xshift=-3pt}]
  ] [A;\frac{5}{5},elo={xshift=-3pt}]
]
\end{forest}

\end{document}

在此处输入图片描述

答案2

其他forest解决方案。这个是为forest那些试图理解 Gonzalo 的出色答案的基础用户准备的。

\documentclass[border=2mm]{standalone}
\usepackage{forest}
\usepackage{amsmath}
\begin{document}
\tikzset{nicelabel/.style={midway, font=\scriptsize}}

\begin{forest}
[ \phantom{$\overline{A}$},for tree={calign=first, grow=0}
    [$\overline{A}$, edge label={node[nicelabel, below]{$\frac{4}{9}$}} 
        [$\overline{A}$, edge label={node[nicelabel,below]{$\frac{3}{8}$}} 
            [$\overline{A}$, edge label={node[nicelabel,below]{$\frac{2}{7}$}} 
                [$\overline{A}$,  edge label={node[nicelabel,below]{$\frac{1}{6}$}}
                [\phantom{$\overline{A}$}, no edge] [A, edge label={node[nicelabel,above]{$\frac{5}{5}$}}]] 
                [A, edge label={node[nicelabel,above]{$\frac{5}{6}$}}]] 
            [A, edge label={node[nicelabel,above]{$\frac{5}{7}$}}]] 
        [A, edge label={node[nicelabel,above]{$\frac{5}{8}$}}]]
    [A, edge label={node[nicelabel,above]{$\frac{5}{9}$}}]]
\end{forest}
\end{document}

在此处输入图片描述

相关内容