4

I would create using tikz package this Markov chain but I encountered many problems. Who can post the right code to create the follow Markov chain?

enter image description here

Alan Munn
  • 218,180
Mazzy
  • 7,642

1 Answers1

13

The positioning library

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}

Output

enter image description here


Replacing the \coordinate line with

\node[draw=none,right=of 2]           (2-g) {text};

you get:

enter image description here

The chains library

Code

\documentclass[tikz]{standalone}
\usetikzlibrary{automata,chains}
\begin{document}
\begin{tikzpicture}[start chain=going right]
\node[state, on chain]                 (0) {0};
\node[state, on chain]                 (1) {1};
\node[state, on chain]                 (2) {2};
\node[on chain]                   (2-g) {text};
\node[state, on chain, text depth=0pt] (g) {g};

% The \draw path is like the one above.
\end{tikzpicture}
\end{document}

Output

enter image description here

Qrrbrbirlbel
  • 119,821
  • Oh thanks you so much...you are so nice!!!THanks for having dedicate your free time to me!!! – Mazzy Jan 07 '13 at 01:42
  • 2
    @Mazzy while you're thanking people, you might want to check your other questions and accept some more of the answers that helped you. – Alan Munn Jan 07 '13 at 01:45
  • is It possible to add some text among the two state 2 and g. I would add ... among those two states. I tried using \text{...} but It gave me error – Mazzy Jan 07 '13 at 01:54
  • @AlanMunn If some questions are not accepted, this means they wasn't right for me...Not all the ans can be useful – Mazzy Jan 07 '13 at 01:55
  • @Mazzy \text is, unless otherwise defined, a math-mode macro defined by amstext that allows to pick up the text font outside the current math mode. You could place your usual \node, just like the others, replacing the \coordinate with \node[right=of 2] (2-g) {<text>};. See my updated answer. – Qrrbrbirlbel Jan 07 '13 at 01:59
  • @Qrrbrbirlbel yeah now it worked...thanks again!!! – Mazzy Jan 07 '13 at 02:03