저는 LaTeX로 논문을 작성 중이고 TikZ를 사용하여 간단한 의사결정나무 다이어그램을 삽입하려고 합니다. 하지만 저는 TikZ를 잘 사용하지 못하고 트리에 두 가지 작은 문제가 있습니다.
이것은 지금 내 나무인데 두 가지 면에서 문제를 겪고 있습니다.
- 상단 R=0 이전에 추가 수평선을 제거하고 싶습니다.
- 노드가 원 안에 있기를 바랍니다.
다시 말하지만, 저는 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!