Seite 1 von 3

Baumdiagramm erstellen

Verfasst: Mo 10. Feb 2014, 08:52
von Gast
Hallo,

ich hab Probleme beim erstellen eines Baumdiagramms. Ich wollte ihn mit tikz erstellen und hab auch ein Beispiel gefunden dem es ähneln soll, allerdings fällt es mir schwer dies zu ändern.

Die Baumstruktur meines Baums ist ziemlich einfach. Von der Wurzel gehen drei Pfade weg und dort teilt es sich nochmals jeweils in zwei auf.

Allerdings funktioniert bei mir das nicht. Kann mir jemand sagen, was ich falsch mache?
\begin{center} 
% macro for inputing payoff vectors 
 \newcommand{\payoff}[4][below]{\node[#1]at(#2){$(#3,#4)$};}

\begin{tikzpicture}[scale=1,font=\footnotesize, hollow node/.style={circle,draw,inner sep=1.2}, solid node/.style={hollow node ,fill=black}]
  % Two node styles: solid and hollow 
  \tikzstyle{solid node}=[circle,draw,inner sep=1.2,fill=black]; 
  \tikzstyle{hollow node}=[circle,draw,inner sep=1.2]; 
  % Specify spacing for each level of the tree 
   
  \tikzstyle{level 0}=[level distance=15mm,sibling distance=36mm, every child node/.style={hollow node}] 
  \tikzstyle{level 1}=[level distance=15mm,sibling distance=18mm, every child node/.style={solid node}] 
  \tikzstyle{level 2}=[level distance=15mm,sibling distance=9mm, every child node/.style={solid node}]
  % The Tree 
\node(0)[hollow node]{} % beginn leere Folge
  child{node(1){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[left]{$(2,0)$} 
      } 
      child{node(2){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[right]{$(3,1)$}
      } 
    child{node(3){} 
      child{node{} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[left]{$(4,4)$}
      } 

  }; 
% information set 
  \draw[dashed,rounded corners=7]($(1-1)+(-.2,.25)$)rectangle($(1-2)+(.2,-.25)$); 
  \draw[dashed,rounded corners=7]($(2-1)+(-.2,.25)$)rectangle($(2-2)+(.2,-.25)$); 
  \draw[dashed,rounded corners=10]($(1) + (-.2,.25)$)rectangle($(2) +(.2,-.25)$); 
% specify movers 
  \node[above]at(0){$1$}; 
\node[above]at(1){$2$}; 
\node[above]at(2){$2$};
\node[above]at(3){$2$};
; 
% payoffs 
  \payoff{1-1}ab 
  \payoff{1-2}cd 
  \payoff{2-1}ef 
  \payoff{2-2}gh 
  \payoff{3-1}ef 
  \payoff{3-2}gh   
  
  ;

\end{tikzpicture} 
\end{center}



\end{document}


Ich hab mich an folgendem Beispiel orientiert


\begin{center} 
% macro for inputing payoff vectors 
 \newcommand{\payoff}[4][below]{\node[#1]at(#2){$(#3,#4)$};}

\begin{tikzpicture}[scale=1,font=\footnotesize, hollow node/.style={circle,draw,inner sep=1.2}, solid node/.style={hollow node ,fill=black}]
  % Two node styles: solid and hollow 
  \tikzstyle{solid node}=[circle,draw,inner sep=1.2,fill=black]; 
  \tikzstyle{hollow node}=[circle,draw,inner sep=1.2]; 
  % Specify spacing for each level of the tree 
  \tikzstyle{level 0}=[every child node/.style={solid node}] 
  \tikzstyle{level 1}=[level distance=15mm,sibling distance=72mm, every child node/.style={solid node}] 
  \tikzstyle{level 2}=[level distance=15mm,sibling distance=36mm, every child node/.style={solid node}] 
  \tikzstyle{level 3}=[level distance=15mm,sibling distance=18mm, every child node/.style={solid node}] 
  \tikzstyle{level 4}=[level distance=15mm,sibling distance=9mm, every child node/.style={hollow node}]
  % The Tree 
\node(0)[solid node]{} 
  child{node(1){} 
    child{node{} 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[left]{$F$}
      } 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[right]{$G$}
      } 
      edge from parent node[left]{$D$}
    } 
    child{node{} 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[left]{$F$}
      } 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[right]{$G$}
      } 
      edge from parent node[right]{$E$} 
    } 
    edge from parent node[left,xshift=-8]{$C$} 
  }
  child{node(2){} 
    child{node{} 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[left]{$F$}
      } 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[right]{$G$}
      } 
      edge from parent node[left]{$D$} 
    } 
    child{node{} 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[left]{$F$}
      } 
      child{node{} 
        child{node{}edge from parent node[left]{$H$}} 
        child{node{}edge from parent node[right]{$I$}} 
        edge from parent node[right]{$G$}
      } 
      edge from parent node[right]{$E$} 
    } 
    edge from parent node[right,xshift=8]{$D$} 
  }; 
% information set 
  \draw[dashed,rounded corners=7]($(1-1)+(-.2,.25)$)rectangle($(1-2)+(.2,-.25)$); 
  \draw[dashed,rounded corners=7]($(2-1)+(-.2,.25)$)rectangle($(2-2)+(.2,-.25)$); 
  \draw[dashed,rounded corners=10]($(1) + (-.2,.25)$)rectangle($(2) +(.2,-.25)$); 
% specify movers 
  \node[above]at(0){$P1$}; 
  \node at ($(1)!.5!(2)$) {$Spieler B$}; 
  \node at ($.5*(1-1)+.5*(1-2)$) {$P1$}; 
  \node at ($.5*(2-1)+.5*(2-2)$) {$P1$}

; 
% payoffs 
  \payoff{1-1-1-1}ab 
  \payoff{1-1-1-2}cd 
  \payoff{1-1-2-1}ef 
  \payoff{1-1-2-2}gh 
  \payoff{1-2-1-1}ij 
  \payoff{1-2-1-2}k{\ell} 
  \payoff{1-2-2-1}mn 
  \payoff{1-2-2-2}op 
  \payoff{2-1-1-1}qr 
  \payoff{2-1-1-2}st 
  \payoff{2-1-2-1}uv 
  \payoff{2-1-2-2}wx 
  \payoff{2-2-1-1}yz 
  \payoff{2-2-1-2}\alpha\beta 
  \payoff{2-2-2-1}\gamma\delta
  \payoff{2-2-2-2}\varepsilon\zeta
  ;

\end{tikzpicture} 
\end{center}
Wär super, wenn mir da jemand helfen könnte. Ich sitze schon ewig dran und komm einfach nicht weiter...


Danke schonmal für die Hilfe

Verfasst: Mo 10. Feb 2014, 10:12
von sudo
Also auf dieser Seite war ein VM angegeben. Mach das in Zukunft bitte auch. Ich glaube, du hast an einer Stelle einen Copy & Paste-Fehler.
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{center} 
% macro for inputing payoff vectors 
 \newcommand{\payoff}[4][below]{\node[#1]at(#2){$(#3,#4)$};} 

\begin{tikzpicture}[scale=1,font=\footnotesize, hollow node/.style={circle,draw,inner sep=1.2}, solid node/.style={hollow node ,fill=black}] 
  % Two node styles: solid and hollow 
  \tikzstyle{solid node}=[circle,draw,inner sep=1.2,fill=black]; 
  \tikzstyle{hollow node}=[circle,draw,inner sep=1.2]; 
  % Specify spacing for each level of the tree 
    
  \tikzstyle{level 0}=[level distance=15mm,sibling distance=36mm, every child node/.style={hollow node}] 
  \tikzstyle{level 1}=[level distance=15mm,sibling distance=18mm, every child node/.style={solid node}] 
  \tikzstyle{level 2}=[level distance=15mm,sibling distance=9mm, every child node/.style={solid node}] 
  % The Tree 
\node(0)[hollow node]{} % beginn leere Folge 
  child{node(1){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[left]{$(2,0)$} 
      } 
      child{node(2){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[right]{$(3,1)$} 
      } 
    child{node(3){} 
%      child{node{} % copy & paste Fehler?
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[left]{$(4,4)$} 
%      }  
  }; 
% information set 
  \draw[dashed,rounded corners=7]($(1-1)+(-.2,.25)$)rectangle($(1-2)+(.2,-.25)$); 
  \draw[dashed,rounded corners=7]($(2-1)+(-.2,.25)$)rectangle($(2-2)+(.2,-.25)$); 
  \draw[dashed,rounded corners=10]($(1) + (-.2,.25)$)rectangle($(2) +(.2,-.25)$); 
% specify movers 
  \node[above]at(0){$1$}; 
\node[above]at(1){$2$}; 
\node[above]at(2){$2$}; 
\node[above]at(3){$2$}; 
% 
% payoffs 
  \payoff{1-1}ab 
  \payoff{1-2}cd 
  \payoff{2-1}ef 
  \payoff{2-2}gh 
  \payoff{3-1}ef 
  \payoff{3-2}gh    

\end{tikzpicture} 
\end{center} 

\end{document}

Verfasst: Mo 10. Feb 2014, 10:44
von Gast
Hallo,

vielen Dank für deine schnelle Hilfe! jetzt sieht es schon viel besser aus. Ich habe noch den "Information set" entfernt,da ich ihn nicht brauche. Allerdings habe ich jetzt noch das Problem, dass die Beschriftung für den zweiten Pfad halb auf die Linie des ersten Pfad steht...wie kann ich das lösen? ich hab am Anfang vermutet, dass ich bei level 0 den Wert für "distance" ändern muss. Aber wenn ich dort ein höheren Wert eingebe ändert sich leider nichts. Und mein zweites Problem ist, dass ich gerne die Zahl 1 und Zahl 2 neben die Punkte schreiben würde. Weiss jemand was ich hierfür eingeben muss?

\begin{center}
% macro for inputing payoff vectors
\newcommand{\payoff}[4][below]{\node[#1]at(#2){$(#3,#4)$};}

\begin{tikzpicture}[scale=1,font=\footnotesize, hollow node/.style={circle,draw,inner sep=1.2}, solid node/.style={hollow node ,fill=black}]
% Two node styles: solid and hollow
\tikzstyle{solid node}=[circle,draw,inner sep=1.2,fill=black];
\tikzstyle{hollow node}=[circle,draw,inner sep=1.2];
% Specify spacing for each level of the tree

\tikzstyle{level 0}=[level distance=15mm,sibling distance=36mm, every child node/.style={hollow node}]
\tikzstyle{level 1}=[level distance=15mm,sibling distance=18mm, every child node/.style={solid node}]
\tikzstyle{level 2}=[level distance=15mm,sibling distance=9mm, every child node/.style={solid node}]
% The Tree
\node(0)[hollow node]{} % beginn leere Folge
child{node(1){}
child{node{}edge from parent node[left]{$j$}}
child{node{}edge from parent node[right]{$n$}}
edge from parent node[left]{$(2,0)$}
}
child{node(2){}
child{node{}edge from parent node[left]{$j$}}
child{node{}edge from parent node[right]{$n$}}
edge from parent node[left]{$(3,1)$}
}
child{node(3){}

child{node{}edge from parent node[left]{$j$}}
child{node{}edge from parent node[right]{$n$}}
edge from parent node[right]{$(4,4)$}
% }
};

% specify movers
\node[above]at(0){$1$};
\node[above]at(1){$2$};
\node[above]at(2){$2$};
\node[above]at(3){$2$};
%
% payoffs
\payoff{1-1}ab
\payoff{1-2}cd
\payoff{2-1}ef
\payoff{2-2}gh
\payoff{3-1}ef
\payoff{3-2}gh

\end{tikzpicture}
\end{center}

Verfasst: Mo 10. Feb 2014, 11:14
von sudo
Ersetze above durch left oder right. Außerdem: VM!

Verfasst: Mo 10. Feb 2014, 11:16
von Gast
Hallo,

vielen Dank! wahrscheinlich eine sehr doofe Frage aber was meinst du mit VM?

Verfasst: Mo 10. Feb 2014, 12:40
von sudo
Ließ dir mal meine Signatur durch.

Verfasst: Mo 10. Feb 2014, 13:55
von Gast
OK nächster Versuch,

ich bin mit dem folgenden Spielbaum noch nicht zufrieden und würde gern drei Dinge ändern.
1) die Striche etwas dicker machen Wie ich die Punkte etwas größer bekomme hab ich herausgefunden, aber leider nicht die Striche...Kann mir das jemand sagen?

2)Außerdem sollen die Payoffs nicht in der Darstellung ( , ) angezeigt werden. Ich will die Payoffs als ein Vektor schreiben? Wie bzw. wo kann ich das denn ändern?

3) die Bezeichnung des ersten Pfads berührt den Pfad. Kann ich etwas Abstand hinzufügen?

Vielen Dank schonmal für die Hilfe! Ich bin leider ein richtiger Anfänger, deshalb fällt es mir manchmal richtig schwer die ganzen Befehle zu verstehen. Falls jemand eine gute Seite kennt, die detaillierte Infos zur Erstellung eines Baums gibt, würde ich mich freuen :)
\documentclass{scrbook}
\usepackage{tikz} 
\begin{document}
\begin{center} 
% macro for inputing payoff vectors 
 \newcommand{\payoff}[4][below]{\node[#1]at(#2){$(#3,#4)$};} 

\begin{tikzpicture}[scale=1,font=\footnotesize, hollow node/.style={circle,draw,inner sep=1.2}, solid node/.style={hollow node ,fill=black}] 
  % Two node styles: solid and hollow 
  \tikzstyle{solid node}=[circle,draw,inner sep=1.2,fill=black]; 
  \tikzstyle{hollow node}=[circle,draw,inner sep=1.2]; 
  % Specify spacing for each level of the tree 
    
  \tikzstyle{level 0}=[level distance=15mm,sibling distance=36mm, every child node/.style={hollow node}] 
  \tikzstyle{level 1}=[level distance=15mm,sibling distance=27mm, every child node/.style={hollow node}] 
  \tikzstyle{level 2}=[level distance=15mm,sibling distance=9mm, every child node/.style={solid node}] 
  % The Tree 
\node(0)[hollow node]{} % beginn leere Folge 
  child{node(1){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[left]{$(2,0)$} 
      } 
      child{node(2){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[right]{$(3,1)$} 
      } 
    child{node(3){} 
%      child{node{} % copy & paste Fehler? 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[right]{$(4,4)$} 
%      }   
  }; 

% specify movers 
  \node[above]at(0){$1$}; 
\node[left]at(1){$2$}; 
\node[right]at(2){$2$}; 
\node[right]at(3){$2$}; 
% 
% payoffs 
  \payoff{1-1}ab 
  \payoff{1-2}cd 
  \payoff{2-1}ef 
  \payoff{2-2}gh 
  \payoff{3-1}ij 
  \payoff{3-2}kl     

\end{tikzpicture} 
\end{center} 

\end{document}


Verfasst: Mo 10. Feb 2014, 16:39
von esdd
Linienstärke:
\begin{tikzpicture}[scale=1,font=\footnotesize, hollow node/.style={circle,draw,inner sep=1.2}, solid node/.style={hollow node ,fill=black},
thick % oder alternativ Vorgabe einer Breite: line width=...pt
]
Payoffs:
\usepackage{amsmath}
\newcommand{\payoff}[4][below]{\node[#1]at(#2){$\binom{#3}{#4}$};} 
Abstand der Beschriftung:
  ...
  edge from parent node[left=3mm]{$(2,0)$} 
  ...
Gruß
Elke

Verfasst: Mo 10. Feb 2014, 17:53
von Gast
danke Elke, es hat sofort funktioniert und ganz langsam versteh ich die Befehle auch mehr:)

hab mir den Baum jetzt auch mal ausgedruckt und da ist mir aufgefallen,dass es insgesamt etwas klein ist:

1) kann man dem Baum insgesamt vergrößern? Also,dass sich nicht nur zb die Zahlen vergrößern sondern einheitlich alles? gibts hierfür ein Befehl

2) die Vektorzahlen (also beim Payoff) sind kleiner als die restlichen Zahlen, kann ich das vereinheitlichen bzw. wie kann ich die größe der Vektorzahlen verändern und an die anderen anpassen

3)die Vektorenklammern hätte ich auch gern etwas größer,da die Zahlen schon fast rausschauen. Kann man dies auch ändern bzw weiss jemand wie

Wenn mir hier noch jemand helfen könnte, das wär super lieb und ich glaub dann wär das Drama mit dem Baum auch zu ende ;)


\documentclass{scrbook} 
\usepackage{tikz} 
\begin{document} 

\begin{center} 
% macro for inputing payoff vectors 
\newcommand{\payoff}[4][below]{\node[#1]at(#2){$\binom{#3}{#4}$};}

\begin{tikzpicture}[scale=1,font=\footnotesize, hollow node/.style={circle,draw,inner sep=1.2}, solid node/.style={hollow node ,fill=black},line width=1pt] 
  % Two node styles: solid and hollow 
  \tikzstyle{solid node}=[circle,draw,inner sep=1.2,fill=black]; 
  \tikzstyle{hollow node}=[circle,draw,inner sep=1.2]; 
  % Specify spacing for each level of the tree 
    
  \tikzstyle{level 0}=[level distance=15mm,sibling distance=36mm, every child node/.style={hollow node}] 
  \tikzstyle{level 1}=[level distance=15mm,sibling distance=27mm, every child node/.style={hollow node}] 
  \tikzstyle{level 2}=[level distance=15mm,sibling distance=9mm, every child node/.style={solid node}] 
  % The Tree 
\node(0)[hollow node]{} % beginn leere Folge 
  child{node(1){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[left=3mm]{$(2,1)$}  
      } 
      child{node(2){} 
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[right]{$(2,4)$} 
      } 
    child{node(3){}  
        child{node{}edge from parent node[left]{$j$}} 
        child{node{}edge from parent node[right]{$n$}} 
        edge from parent node[right=3mm]{$(2,5)$} 
%      }   
  }; 

% specify movers 
  \node[above]at(0){$1$}; 
\node[left]at(1){$2$}; 
\node[right]at(2){$2$}; 
\node[right]at(3){$2$}; 
% 
% payoffs 
  \payoff{1-1}12 
  \payoff{1-2}23 
  \payoff{2-1}34 
  \payoff{2-2}56 
  \payoff{3-1}78 
  \payoff{3-2}12     

\end{tikzpicture} 
\end{center} 

\end{document}

Verfasst: Mo 10. Feb 2014, 18:02
von Johannes_B
Zu Punkt eins: Wie kann ich eine TikZ-Grafik vergrößern oder verkleinern?

Es gibt in der Anleitung von tikz übrigens ein sehr ausführliches Tutorial. Das kann ich dir sehr empfehlen.