Диаграмма дерева решений TikZ — удаление лишних линий и обводка узлов?

Диаграмма дерева решений TikZ — удаление лишних линий и обводка узлов?

Я работаю над статьей в LaTeX и пытаюсь вставить простую диаграмму дерева решений с помощью TikZ. Однако я не очень хорош в TikZ, и у меня есть две небольшие проблемы с моим деревом.

введите описание изображения здесь

Сейчас это мое дерево, и у меня с ним возникли две проблемы:

  1. Я хотел бы избавиться от лишней горизонтальной линии перед верхней точкой R=0.
  2. Мне бы хотелось, чтобы узлы находились внутри кругов.

Опять же, я не силен в TikZ и не могу заставить его работать. Мой код ниже.

{
% Set the overall layout of the tree
\tikzstyle{level 1}=[level distance=3.5cm, sibling distance=3.5cm]
\tikzstyle{level 2}=[level distance=3.5cm, sibling distance=2cm]

% Define styles for bags and leafs
\tikzstyle{bag} = [text width=4em, text centered]
\tikzstyle{end} = [circle, minimum width=3pt,fill, inner sep=0pt]

%TODO: fix top node
\begin{figure}[h]
\centering
\begin{tikzpicture}[grow=right, sloped, scale=0.8]
\node[bag] {$L$}
    child {
        node[bag] {$D$}        
            child {
                node[bag] {$P$}
                    child {
                        node[bag] {$C$}
                            child {
                                node[end, label=right:
                                {$\mathbf{R=1}$}] {}
                                edge from parent
                                %node[above] {$E$}
                                node[below]  {$C=0$}
                            }
                            child {
                                node[end, label=right:
                                {$\mathbf{R=0}$}] {}
                                edge from parent
                                %node[above] {$E$}
                                node[below]  {$C=1$}
                            }
                        edge from parent
                        %node[above] {$E$}
                        node[below]  {$P=0$}
                    }
                    child {
                        node[end, label=right:
                        {$\mathbf{R=0}$}] {}
                        edge from parent
                        %node[above] {$E$}
                        node[below]  {$P=1$}
                    }
                edge from parent
                %node[above] {$W$}
                node[below]  {$D=0$}
            }
            child {
                node[end, label=right:
                    {$\mathbf{R=0}$}] {}
                edge from parent
                %node[above] {$E$}
                node[below]  {$D=1$}
            }
            edge from parent 
            %node[above] {$W$}
            node[below]  {$L=0$}
    }
    child {
           child {
            node[end, label=right:
            {$\mathbf{R=0}$}] {}
            edge from parent
            %node[above] {$E$}
            %node[below]  {$C=0$}
           }
        edge from parent         
            %node[above] {$B$}
            node[below]  {$L=1$}
    };
\end{tikzpicture}
\end{figure}
}

Если бы кто-то, кто разбирается в TikZ лучше меня, мог мне в этом помочь, я был бы очень признателен.

решение1

Я понял это с помощьюhttps://tex.stackexchange.com/a/240766/77231.

Вот моя новая фотография:

дерево

И мой новый код:

\documentclass[tikz]{standalone}
\usepackage{forest}
\begin{document}
\tikzset{
    decision/.style={circle, minimum height=10pt, minimum width=10pt, draw=black, fill=none, thick, inner sep=0pt},
    chance/.style={circle, minimum width=10pt, draw=black, fill=none, thick, inner sep=0pt},
  }
 \begin{forest}
    my label/.style={
      edge label={node[auto,sloped,pos=.75,anchor=south]{#1}}
    },
    for tree={
      grow=0,
      child anchor=west,
      anchor=west,
      text ragged,
      inner sep=1mm,
      edge={thick, draw=black},
      l sep+=15mm,
      s sep+=15mm,
      if n children=0{
        before typesetting nodes={
          label/.wrap pgfmath arg={right:#1}{content()},
          content={},
          chance,
        },
      }{},
      edge path={
        \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) |- (.child anchor)\forestoption{edge label};
      }
    }
    [, decision
      [, chance, my label={$L=0$}
        [, chance, my label={$D=0$}
          [, chance, my label={$P=0$}
            [{$\mathbf{R=1}$}, my label={$C=0$}
            ]
            [{$\mathbf{R=0}$}, my label={$C=1$}
            ]
          ]
          [{$\mathbf{R=0}$}, my label={$P=1$}
          ]
        ]
        [{$\mathbf{R=0}$}, my label={$D=1$}
        ]
      ]
      [{$\mathbf{R=0}$}, my label={$L=1$}
      ]
    ]
  \end{forest}
\end{document}

Я думаю, что это намного аккуратнее и лучше. Спасибо еще раз за ответ cfr наhttps://tex.stackexchange.com/a/240766/77231!

Связанный контент