
Ich möchte ein Zustandsdiagramm wie dieses zeichnen:
Ich verwende den folgenden Code:
\documentclass[tikz]{standalone}
\usetikzlibrary{automata,positioning}
\begin{document}
\begin{tikzpicture}
\node[state] (0) {0};
\node[state,right=of 0] (1) {1};
\node[state,right=of 1] (2) {2};
\coordinate[draw=none,right=of 2] (2-g);
\node[state,right=of {2-g},text depth=0pt] (g) {g};
\draw[
>=latex,
% every node/.style={above,midway},% either
auto=right, % or
loop above/.style={out=75,in=105,loop},
every loop,
]
(g) edge[loop above] node {$p_{gg}$} (g)
edge node {$p_{gg-1}$} (2-g)
(2-g) to node {$p_{32}$} (2)
edge[loop above] node {$p_{22}$} (2)
(2) edge node {$p_{21}$} (1)
(1) edge[loop above] node {$p_{11}$} (1)
edge node {$p_{10}$} (0)
(0) edge[loop above] node {$p_{00}$} (0);
\end{tikzpicture}
\end{document}
Aber ich hätte gerne alle Pfeile in beide Richtungen. Wie kann ich das machen? Danke.
Antwort1
Wir müssen nur drei Stile anpassen:
- der Stil der Pfadzeichnungen
\draw
; - der Stil der
edge
S\draw
-Zeichnungen; - der Stil der
loop
Kantenzeichnungen\draw
.
Wir können <->
an den \draw
Befehl anhängen und verwenden, .append style
um dasselbe für die Stile every loop
und zu tun every edge
:
\draw[
>=latex,
auto=right,
loop above/.style={out=75,in=105,loop},
every loop/.append style={<->},
every edge/.append style={<->},
<->
]
...
Vollständiger Code:
\documentclass[tikz,border=10pt,multi]{standalone}
\usetikzlibrary{automata,positioning}
\begin{document}
\begin{tikzpicture}
\node[state] (0) {0};
\node[state,right=of 0] (1) {1};
\node[state,right=of 1] (2) {2};
\coordinate[draw=none,right=of 2] (2-g);
\node[state,right=of {2-g},text depth=0pt] (g) {g};
\draw[
>=latex,
auto=right,
loop above/.style={out=75,in=105,loop},
every loop/.append style={<->},
every edge/.append style={<->},
<->
]
(g) edge[loop above] node {$p_{gg}$} (g)
edge node {$p_{gg-1}$} (2-g)
(2-g) to node {$p_{32}$} (2)
edge[loop above] node {$p_{22}$} (2)
(2) edge node {$p_{21}$} (1)
(1) edge[loop above] node {$p_{11}$} (1)
edge node {$p_{10}$} (0)
(0) edge[loop above] node {$p_{00}$} (0);
\end{tikzpicture}
\end{document}