Ich habe vor längerer Zeit einen Code für einen Wahrscheinlichkeitsbaum geschrieben (siehe Bild unten), leider ist der Code verloren gegangen. Hat jemand eine Idee, wie ich ihn wieder realisieren kann?
Ich habe bereits eine alte Version ausprobiert, aber es schlägt fehl
\begin{figure}[H]
\centering
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=0.6cm,y=0.5cm]
\clip(0,-6.5) rectangle (18,6);
\draw [line width=2pt] (2,-1)-- (9,2);
\draw [line width=2pt] (2,-1)-- (9,-4);
\draw [line width=2pt] (9,2)-- (16,4);
\draw [line width=2pt] (9,2)-- (16,0);
\draw [line width=2pt] (9,-4)-- (16,-2);
\draw [line width=2pt] (9,-4)-- (16,-6);
\filldraw [red] (2,-1) circle (2.8pt);
\filldraw [red] (9,2) circle (2.8pt);
\filldraw [red] (9,-4) circle (2.8pt);
\filldraw [red] (16,-6) circle (2.8pt);
\filldraw [red] (16,-2) circle (2.8pt);
\filldraw [red] (16,4) circle (2.8pt);
\filldraw [red] (16,0) circle (2.8pt);
\node (A) at (9,2.8) {$V$};
\node (B) at (9,-3.2) {$\overline{V}$};
\node (C) at (16,4.8) {$S$};
\node (D) at (16,0.8) {$\overline{S}$};
\node (E) at (16,-1.2) {$S$};
\node (F) at (16,-5.2) {$\overline{S}$};
\node (G) at (5,1.5) {\scriptsize {\color{blue}$P(V)=0,4$}};
\node (G) at (5,-3.5) {\scriptsize {\color{blue}$P(\overline{V})=0,6$}};
\node (G) at (12,3.8) {\scriptsize {\color{blue}$P(S|V)=0,6$}};
\node (G) at (12,0) {\scriptsize {\color{blue}$P(\overline{S}|V)=0,4$}};
\node (G) at (12,-2) {\scriptsize {\color{blue}$P(S|\overline{V})=0,3$}};
\node (G) at (12,-6) {\scriptsize {\color{blue}$P(\overline{S}|\overline{V})=0,7$}};
\end{tikzpicture}
\caption{Baumdiagramm für Aufgabe 11}
\end{figure}
Antwort1
Kurz gesagt, um Ihren Code zu ändern, ersetzen Sie alle Instanzen, in denen Sie
\filldraw [red] (x,y) circle (2.8pt);
mit
\node [draw=black,fill=red!10,circle] at (x,y) {$A$};
Außer dem ersten roten Kreis, den können Sie einfach entfernen. Und natürlich $A$
durch das entsprechende Symbol für den betreffenden Knoten ersetzen. Hier ist eine Version Ihres Codes, in der ich ein wenig aufgeräumt habe. Ich habe den Text in den Knoten nicht geändert, aber das können Sie ändern.
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[line cap=round,line join=round,x=0.6cm,y=0.5cm]
\coordinate (O) at (2,-1);
\begin{scope}[every node/.style={circle,draw=black,fill=red!10}]
\node (A) at (9,2) {$V$};
\node (B) at (9,-4) {$\overline{V}$};
\node (C) at (16,4) {$S$};
\node (D) at (16,0) {$\overline{S}$};
\node (E) at (16,-2) {$S$};
\node (F) at (16,-6) {$\overline{S}$};
\end{scope}
\draw (O) -- (A) -- (C)
(A) -- (D)
(O) -- (B) -- (E)
(B) -- (F);
\begin{scope}[every node/.style={blue,font=\scriptsize}]
\node at (5,1.5) {$P(V)=0,4$};
\node at (5,-3.5) {$P(\overline{V})=0,6$};
\node at (12,3.8) {$P(S|V)=0,6$};
\node at (12,0) {$P(\overline{S}|V)=0,4$};
\node at (12,-2) {$P(S|\overline{V})=0,3$};
\node at (12,-6) {$P(\overline{S}|\overline{V})=0,7$};
\end{scope}
\end{tikzpicture}
\end{document}
TikZ-Baum
Da es sich jedoch um einen Baum handelt, können Sie auch die Baumzeichenfunktionen von TikZ wie folgt verwenden:
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
circ/.style={draw=black,fill=red!15,circle},
grow=right,
level 1/.style={sibling distance=2cm},
level 2/.style={sibling distance=1cm},
level distance=3cm]
\node [coordinate] {}
child {
node[circ] {$\bar{A}$}
child { node[circ] {$\bar{D}$}
edge from parent
node [below=2] {$0.9999$}}
child { node[circ] {$D$}
edge from parent
node [above=2] {$0.0001$}}
edge from parent
node [below=2] {$0.9999$}
}
child {
node[circ] {$A$}
child { node[circ] {$\bar{D}$}
edge from parent
node [below=2] {$0.0001$}}
child { node[circ] {$D$}
edge from parent
node [above=2] {$0.9999$}
}
edge from parent
node [above=2] {$0.0001$}
};
\end{tikzpicture}
\end{document}
forest
Oder man verwendet das leistungsstärkere forest
Paket, das, glaube ich, ziemlich beliebt ist. Ich bin allerdings kein Experte, daher ist es durchaus möglich, dass die Kantenbeschriftungen eleganter gelöst werden könnten.
\documentclass[border=5mm]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
math content,
if n=0{coordinate}{circle,draw=black,fill=red!10},
grow=0,
l=3cm
}
[
[\overline{A},edge label={node[midway,below=2pt]{0.9999}}
[\overline{D},edge label={node[midway,below]{0.9999}}]
[D,edge label={node[midway,above]{0.0001}}]
]
[A,edge label={node[midway,above=2pt]{0.0001}}
[\overline{D},edge label={node[midway,below]{0.0001}}]
[D,edge label={node[midway,above]{0.9999}}]
]
]
\end{forest}
\end{document}
Antwort2
Eine kleine Variation vonWaldFall inTorbjørn T.Antwort:
\documentclass[border=5mm]{standalone}
\usepackage{forest}
\usetikzlibrary{shadows}% <-- added
\begin{document}
\forestset{% <-- added
EL/.style 2 args={% shortens for (my) edge label
edge label={node[midway, font=\footnotesize, #1]{#2}},
},
}% end of forestset
\begin{forest}
for tree={
math content, % <-- all text is math
if n=0{coordinate}{circle,draw=black,fill=red!10,drop shadow},% <-- slightly changed
grow=0,
l sep = 24mm,
}% end of for tree
[
[\overline{A},EL={below=1pt}{0.9999}% <-- changed
[\overline{D},EL={below}{0.9999}]
[D,EL={above}{0.0001}]
]
[A,EL={above=2pt}{0.0001}
[\overline{D},EL={below}{0.0001}]
[D,EL={above}{0.9999}]
]
]
\end{forest}
\end{document}
Unterschiede bestehen in der Schreibweise der Kantenbeschriftungen. Das Ergebnis ist ähnlich:
(Die Idee für die Beschriftung der Etiketten stammt auscfrAntwortHier.)