# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

# distplot

Plot Markov chain redistributions

## Syntax

``distplot(mc,X)``
``distplot(mc,X,Name,Value)``
``h = distplot(___)``

## Description

example

````distplot(mc,X)` creates a heatmap from the data `X` showing the evolution of a distribution of states in a discrete-time Markov chain `mc`.```

example

````distplot(mc,X,Name,Value)` uses additional options specified by one or more `Name,Value` pair arguments. For example, specify the type of plot or frame rate for animated plots.```
``` `h = distplot(___)` returns the plot handle. Use `h` to modify properties of the plot after it is created.```

## Examples

collapse all

Create a four-state Markov chain from a randomly generated transition matrix containing eight infeasible transitions.

```rng('default'); % For reproducibility mc = mcmix(4,'Zeros',8); ```

`mc` is a `dtmc` object.

Plot a digraph of the Markov chain.

```figure; graphplot(mc); ```

State `4` is an absorbing state.

Compute the state redistributions at each step for 10 discrete time steps. Assume an initial uniform distribution over the states.

```X = redistribute(mc,10) ```
```X = 0.2500 0.2500 0.2500 0.2500 0.0869 0.2577 0.3088 0.3467 0.1073 0.2990 0.1536 0.4402 0.0533 0.2133 0.1844 0.5489 0.0641 0.2010 0.1092 0.6257 0.0379 0.1473 0.1162 0.6985 0.0404 0.1316 0.0765 0.7515 0.0266 0.0997 0.0746 0.7991 0.0259 0.0864 0.0526 0.8351 0.0183 0.0670 0.0484 0.8663 0.0168 0.0569 0.0358 0.8905 ```

`X` is an 11-by-4 matrix. Rows correspond to time steps and columns correspond to states.

Visualize the state redistribution.

```figure; distplot(mc,X) ```

After ten transitions, the distribution appears to settle with a majoritty of the probability mass in state `4`.

Consider this theoretical, right-stochastic transition matrix of a stochastic process.

Create the Markov chain that is characterized by the transition matrix P.

```P = [ 0 0 1/2 1/4 1/4 0 0 ; 0 0 1/3 0 2/3 0 0 ; 0 0 0 0 0 1/3 2/3; 0 0 0 0 0 1/2 1/2; 0 0 0 0 0 3/4 1/4; 1/2 1/2 0 0 0 0 0 ; 1/4 3/4 0 0 0 0 0 ]; mc = dtmc(P); ```

Compute the state redistributions at each step for 20 discrete time steps.

```X = redistribute(mc,20); ```

Animate the redistibutions in a histogram. Specify a half second frame rate.

```figure; distplot(mc,X,'Type','histogram','FrameRate',0.5); ```

## Input Arguments

collapse all

Discrete-time Markov chain with `NumStates` states and transition matrix `P`, specified as a `dtmc` object.

Evolution of state probabilities, specified as a ```(1 + numSteps)```-by-`NumStates` nonnegative numeric matrix returned by `redistribute`. The first row is the initial state distribution. Subsequent rows are the redistributions at each step. `distplot` normalizes the rows by their respective sums before plotting.

Data Types: `double`

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside single quotes (`' '`). You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: `'Type','graph','FrameRate',3` creates an animated plot of the redistributions using a frame rate of 3 seconds.

collapse all

Plot type, specified as the comma-separated pair consisting of `'Type'` and a value in this table.

ValueDescription
`'evolution'`

Evolution of the initial distribution. The plot is a ```(1 + NumSteps)```-by-`NumStates` heatmap. Row i displays the redistribution at step i.

`'histogram'`

Animated histogram of the redistributions. The vertical axis displays probability mass, the horizontal axis displays states. The `'FrameRate'` name-value pair argument controls the animation progress.

`'graph'`

Animated graph of the redistributions. `distplot` colors the nodes by their probability mass at each step. The `'FrameRate'` name-value pair argument controls the animation progress.

Example: `'Type','graph'`

Data Types: `string` | `char`

Length of discrete time steps, in seconds, for animated plots, specified as the comma-separated pair consisting of `'FrameRate'` and a positive scalar.

The default is a pause at each time step. The animation proceeds when you press the space bar.

Example: `'FrameRate',3`

Data Types: `double`

## Output Arguments

collapse all

Plot handle, returned as an object. `h` is a unique identifier, which you can use to query and modify properties of the plot.