Skip to content

trankplot ​

A trankplot shows the mean rank of samples per iteration bin for each chain and parameter connected by stairs.

Trankplots are an alternative for traceplots which perform well at reveal convergence issues irrespective of the number of iterations per chain.

julia
using ChainsMakie, CairoMakie
import MCMCChains: Chains
chains = Chains(randn(300, 2, 4), [:A, :B])
fig = trankplot(chains)
fig

It is possible to plot a subset of the parameters by passing their names as the second argument:

julia
using ChainsMakie, CairoMakie
import MCMCChains: Chains
chains = Chains(randn(300, 3, 4), [:A, :B, :C])
trankplot(chains, [:A, :B])

Attributes ​

color ​

Specifies the colors to be used for coloring the rank trace of each chain.

Defaults to Makie's wong_colors palette and automatically switches to colormap = :viridis for more than seven chains.

julia
using ChainsMakie, CairoMakie
import MCMCChains: Chains
chains = Chains(randn(300, 2, 4), [:A, :B])
fig = trankplot(chains; color = first(Makie.to_colormap(:tab20), 4))
fig

colormap ​

Specifies the colormap to be used for coloring the rank trace of each chain.

Defaults to :viridis.

julia
using ChainsMakie, CairoMakie
import MCMCChains: Chains
chains = Chains(randn(300, 2, 8), [:A, :B])
fig = trankplot(chains; colormap = :plasma)
fig

linewidth ​

Controls the linewidth of each rank trace.

Defaults to 1.5.

alpha ​

Controls the opacity of each rank trace.

Defaults to 0.8.

julia
using ChainsMakie, CairoMakie
import MCMCChains: Chains
chains = Chains(randn(300, 2, 8), [:A, :B])
fig = trankplot(chains; linewidth = 1.0, alpha = 1.0)
fig