Tikz:简单决策树(节点连接)

Tikz:简单决策树(节点连接)

我正在尝试重现以下内容

在此处输入图片描述

到目前为止我得到了这个:

\begin{tikzpicture}[]
\small
\node[] (AB) {$A \succeq B$};
\node[]{}
    child{node[chance]{C}
      edge from parent
        node[above]{1-p}    
                }
    child{node[chance]{A} 
      edge from parent
          node[below]{p}
        };
\end{tikzpicture}

A \succeq B我的基本问题是标记和连接简单节点。那么“将此节点放置在决策树左侧并保持适当距离”的命令是什么?非常感谢。

答案1

这里有两个选项,展示了如何使用两个最流行的树生成包来生成树;第一个使用forest包和第二个使用tikz-qtree

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

\begin{document}

\[
A \succeq B
\Rightarrow
\begin{forest}
baseline,
for tree={grow=0,parent anchor=east,l sep=35pt} 
[
  [C,edge label={node[sloped,pos=0.5,below,font=\scriptsize]{$1-p$}}]
  [A,edge label={node[sloped,pos=0.5,above,font=\scriptsize]{$p$}}]
] 
\end{forest}
\succeq
\begin{forest}
baseline,
for tree={grow=0,parent anchor=east,l sep=35pt} 
[
  [C,edge label={node[sloped,pos=0.5,below,font=\scriptsize]{$1-p$}}]
  [B,edge label={node[sloped,pos=0.5,above,font=\scriptsize]{$p$}}]
] 
\end{forest}
\]

\[
A \succeq B
\Rightarrow
\begin{tikzpicture}[baseline,grow=right,level distance=35pt]
\Tree[
  \edge node[sloped,pos=0.5,below,font=\scriptsize]{$1-p$}; C
  \edge node[sloped,pos=0.5,above,font=\scriptsize]{$p$}; A
] 
\end{tikzpicture}
\succeq
\begin{tikzpicture}[baseline,grow=right,level distance=35pt]
\Tree[
  \edge node[sloped,pos=0.5,below,font=\scriptsize]{$1-p$}; C
  \edge node[sloped,pos=0.5,above,font=\scriptsize]{$p$}; B
] 
\end{tikzpicture}
\]

\end{document}

结果:

在此处输入图片描述

答案2

正如库马尔先生所说,我会选择symbol这里的声明有点过度,但您也可以在其他图表中使用它,甚至对于垂直和对角箭头也是如此。

% arara: pdflatex

\documentclass{article}
\usepackage{tikz-cd}
\tikzset{%
    symbol/.style={%
        draw=none,
        every to/.append style={%
            edge node={node [sloped, allow upside down, auto=false]{$#1$}}}
    }
}

\begin{document}
\[
\begin{tikzcd}[every label/.append style={sloped}, row sep=tiny] % or small
& & & A & & B\\
A  \arrow[symbol={\succeq}]{r} & B \arrow[Rightarrow]{r} & \null\arrow[start anchor=center, dash]{ur}[above]{p}\arrow[start anchor=center,dash]{dr}[below]{1-p} & \arrow[symbol={\succeq}]{r} & \null\arrow[start anchor=center, dash]{ur}[above]{p}\arrow[start anchor=center,dash]{dr}[below]{1-p} & \\
& & & C & & D
\end{tikzcd}
\]
\end{document} 

在此处输入图片描述

如果您想要更一致的间距,您可能还需要添加\Rightarrow作为符号。

\arrow[symbol=\Rightarrow]{r}

在此处输入图片描述

如果您想要获得更紧密的水平间距,您可以将&第一行的每一行定义为您喜欢的任意值。例如&[-3ex] & & A & & B\\看起来可能不错。

另一种可能性是将第一部分写成普通公式。&从第一行和最后一行删除第一个,并以 开始第二个A \succeq B \arrow[Rightarrow]{r}

相关内容