Simple Markov Chain visualization module in Python. Only requires matplotlib and numpy to work.
Thanks to updates made by @yagoduppel, the code can now support more than four states. Examples below. @SHaf373 has also added a gui-version for two-state Markov Chains.
- matplotlib
- numpy
- Tkinter standard GUI library for Python
Copy the files src/node.py and src/markovchain.py in your script directory. Then
from markovchain import MarkovChain
Script-based
P = np.array([[0.8, 0.2], [0.1, 0.9]]) # Transition matrix
mc = MarkovChain(P, ['1', '2'])
mc.draw("../img/markov-chain-two-states.png")
Dynamic Random Entery by the user
For GUI-based version use src/2X2.py
.
P = np.array([
[0.8, 0.1, 0.1],
[0.1, 0.7, 0.2],
[0.1, 0.7, 0.2],
])
mc = MarkovChain(P, ['A', 'B', 'C'])
mc.draw("../img/markov-chain-three-states.png")
P = np.array([
[0.8, 0.1, 0.1, 0.0],
[0.1, 0.7, 0.0, 0.2],
[0.1, 0.0, 0.7, 0.2],
[0.1, 0.0, 0.7, 0.2]
])
mc = MarkovChain(P, ['1', '2', '3', '4'])
mc.draw("../img/markov-chain-four-states.png")
P = np.array([
[0.8, 0.1, 0.1, 0.0, 0.0],
[0.1, 0.6, 0.0, 0.2, 0.1],
[0.1, 0.0, 0.7, 0.2, 0.0],
[0.1, 0.0, 0.4, 0.2, 0.3],
[0.6, 0.1, 0.1, 0.0, 0.2],
])
mc = MarkovChain(P, ['1', '2', '3', '4', '5'])
mc.draw("../img/markov-chain-five-states.png")
Credit: Naysan Saran Modification: [M Shaf Khattak].(https://github.com/SHaf373)
Related links in my blog:
This project is licensed under the GPL V3 licence.