Hallo zusammen, ich erstelle einen einfachen Spielbaum mit Tikz. Ich bin fast fertig, aber ich brauche noch ein paar Feinarbeiten, um es richtig zu machen. Das ist der bisherige Code
\hspace{.1in}
\tikzstyle{level 1}=[level distance=1.5cm, sibling distance=3.5cm]
\tikzstyle{level 2}=[level distance=1.5cm, sibling distance=1cm]
\tikzstyle{level 3}=[level distance=1.5cm, sibling distance=1cm]
\tikzstyle{level 4}=[level distance=1.5cm, sibling distance=2cm]
\begin{tikzpicture}
\node(0){Firm 1}
child{node(11){\( E_2 \)}
child{node{\( 0 \)}}
child{node(21){\( q_1 \)}
child{node{\( 0 \)}}
child{node{\( q_2 \)}
child{node{\( \begin{pmatrix}
\Pi^{c_{2}}_{1} \\ \Pi^{c}_{2}\\ \Pi^{m}_{3}
\end{pmatrix} \)}}}
child{node{\( \infty \)}}}
child{node{\( \infty \)}}}
child{node(12){\( E_3 \)}
child{node{\( 0 \)}}
child{node(22){\( q_1 \)}
child{node{\( 0 \)}}
child{node{\( q_3 \)}
child{node{\( \begin{pmatrix}
\Pi^{c_{3}}_{1} \\ \Pi^{m}_{2}\\ \Pi^{c}_{3}
\end{pmatrix} \)}}}
child{node{\( \infty \)}}}
child{node{\( \infty \)}}
};
\draw[dashed](11-1)to(11-3);
\draw[dashed](12-1)to(12-3);
\end{tikzpicture}
Ich möchte die q_1-Knoten so verschieben, dass sie nicht auf der gestrichelten Linie liegen. Außerdem hätte ich gern einen Abwärtsbogen zwischen 0 und unendlich, der von der Mitte des Zweigs ausgeht. (Also nicht von den Knoten, sondern auf halbem Weg zwischen ihnen.) Er soll symbolisieren, dass die q-Werte zwischen 0 und unendlich liegen können. Ich hoffe, meine Frage ergibt Sinn, ansonsten fragen Sie ruhig :-)
Ich freue mich auf eure Antworten
Viele Grüße Steffen
Antwort1
Wäre dies eine Ihrer möglichen Lösungen, bei der die gestrichelte Linie stattdessen ein wenig nach oben verschoben wird, sodass q_1 nicht auf der gestrichelten Linie liegt, die zeigt, was Sie möchten?
Code
\documentclass[border=10pt]{standalone}%{article}
\usepackage{tikz}
\usetikzlibrary{arrows,trees,positioning,calc}
\begin{document}
\hspace{.1in}
\tikzstyle{level 1}=[level distance=1.5cm, sibling distance=3.5cm]
\tikzstyle{level 2}=[level distance=1.5cm, sibling distance=1cm]
\tikzstyle{level 3}=[level distance=1.5cm, sibling distance=1cm]
\tikzstyle{level 4}=[level distance=1.5cm, sibling distance=2cm]
\begin{tikzpicture}
\node(0){Firm 1}
child{node[](11){\( E_2 \)}
child{node{\( 0 \)}}
child{node(21){\( q_1 \)}
child{node{\( 0 \)}}
child{node{\( q_2 \)}
child{node{\(\begin{pmatrix}
\Pi^{c_{2}}_{1} \\ \Pi^{c}_{2}\\ \Pi^{m}_{3}
\end{pmatrix} \)}}}
child{node{\( \infty \)}}}
child{node{\( \infty \)}}}
child{node(12){\( E_3 \)}
child{node{\( 0 \)}}
child{node(22){\( q_1 \)}
child{node{\( 0 \)}}
child{node{\( q_3 \)}
child{node{\( \begin{pmatrix}
\Pi^{c_{3}}_{1} \\ \Pi^{m}_{2}\\ \Pi^{c}_{3}
\end{pmatrix} \)}}}
child{node{\( \infty \)}}}
child{node{\( \infty \)}}
};
\draw[dashed]([yshift=4ex]$(11-1)!0.55!(21)$) to[bend right] ([yshift=4ex]$(21)!0.5!(11-3)$);
\draw[dashed]([yshift=4ex]$(12-1)!0.55!(22)$) to[bend right]([yshift=4ex]$(22)!0.5!(12-3)$);
\end{tikzpicture}
\end{document}
Antwort2
Ein weiteres Beispiel für die Verwendung deristgamePaket (Version 2.0):
\documentclass{standalone}
\usepackage{istgame}
\begin{document}
\begin{istgame}[semithick]
\tikzset{oval node/.style={box node,draw=none,minimum size=5mm}}
\cntmdistance*{20mm}{25mm}
\istrooto(0)[plain node]{Firm 1}+15mm..50mm+
\istb \istb \endist
\setistmathTF111
\cntmApreset[dashed,thick]{.6}
\istrootocntmA(E2)(0-1){E_2} \istb[thin] \endist
\xtNode*(cntm-1){0} \xtNode*(cntm-2){\infty}
\istrootocntmA(E3)(0-2){E_3} \istb[thin] \endist
\xtNode*(cntm-1){0} \xtNode*(cntm-2){\infty}
\istrootocntmA(11)(E2-1){q_1} \istb[thin] \endist
\xtNode*(cntm-1){0} \xtNode*(cntm-2){\infty}
\istrootocntmA(21)(E3-1){q_1} \istb[thin] \endist
\xtNode*(cntm-1){0} \xtNode*(cntm-2){\infty}
\istrooto(3a)(11-1){q_2} \istb[thin] \endist
\xtNode*(3a-1){\big(\prod\big)_1^{c_2}\prod_2^c\prod_3^m}
\istrooto(3b)(21-1){q_3} \istb[thin] \endist
\xtNode*(3b-1){\big(\prod\big)_1^{c_3}\prod_2^m\prod_3^c}
\end{istgame}
\end{document}
Antwort3
Diese Lösung ist nicht sehr schön (Sie sollten stattdessen die von Jesse verwenden), da sie den Abstand unter der gestrichelten Linie vergrößert, aber sie ist sehr einfach umzusetzen.
% arara: pdflatex
\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\begin{document}
\tikzstyle{level 1}=[level distance=1.5cm, sibling distance=3.5cm]
\tikzstyle{level 2}=[level distance=1.5cm, sibling distance=1cm]
\tikzstyle{level 3}=[level distance=1.5cm, sibling distance=1cm]
\tikzstyle{level 4}=[level distance=1.5cm, sibling distance=2cm]
\begin{tikzpicture}
\node(0){Firm 1}
child{node(11){\( E_2 \)}
child{node{\( 0 \)}}
child{node(21){\raisebox{15pt}{$q_1$}}
child{node{\( 0 \)}}
child{node{\( q_2 \)}
child{node{\(\begin{pmatrix}\Pi^{c_{2}}_{1} \\ \Pi^{c}_{2}\\ \Pi^{m}_{3}\end{pmatrix}\)}}}
child{node{\( \infty \)}}}
child{node{\( \infty \)}}}
child{node(12){\( E_3 \)}
child{node{\( 0 \)}}
child{node(22){\raisebox{15pt}{$q_1$}}
child{node{\( 0 \)}}
child{node{\( q_3 \)}
child{node{\(\begin{pmatrix}\Pi^{c_{3}}_{1} \\ \Pi^{m}_{2}\\ \Pi^{c}_{3}\end{pmatrix}\)}}}
child{node{\( \infty \)}}}
child{node{\( \infty \)}}
};
\draw[dashed](11-1)to(11-3);
\draw[dashed](12-1)to(12-3);
\end{tikzpicture}
\end{document}