Step Matrix

Displays a heatmap table of step-by-step transition probabilities. Each cell shows the share of paths that pass through a given event at a given step relative to an anchor. The horizontal axis represents step offset from the anchor (negative steps are before it, positive are after), and the vertical axis lists the events.

Each column sums to 1 in standard mode, while in diff mode columns sum to 0.

Step Matrix and Step Sankey visualise the same underlying data in different forms: Step Matrix as a heatmap table, Step Sankey as a flow diagram. Use whichever makes the pattern you are looking for easier to spot.

Usage

stream.step_matrix(path_pattern=".*->purchase")
stream.step_matrix(path_pattern=".*->add_to_cart->.*->purchase")
stream.step_matrix(diff=("is_new_user", False, True))

Parameters

Data

Data parameters change the computed result. They are exactly the arguments of the widget's headless twin stream.step_matrix_data() — see headless mode below.

No parameters.

Display

Display parameters only affect how the widget is rendered.

ParameterTypeDescription
max_stepsint, default 10Number of path steps to compute on each side of the anchor.
difftuple, optional(segment_col, value1, value2) or (path_ids1, path_ids2); value2 may be <REST>.
path_colstr, optionalPath ID column override; defaults to schema.path_col.
path_patternstr, optionalRestrict/split paths using a "->"-separated sequence of anchor events, where .* matches any run of events, e.g. ".*->add_to_cart->.*->purchase". Without a pattern, shows the whole path from path_start to path_end. Multiple anchors render one matrix block per anchor, side by side. A pattern that doesn't start at path_start or end at path_end shows a serrated edge, signalling paths continue beyond the visible range.
heightint, default 600Widget height in pixels.
sidebar_openbool, default TrueWhether the sidebar starts open.

Headless mode

stream.step_matrix_data()

Alias for step_sankey_data — Step Matrix and Step Sankey render the same underlying per-step data, so both widgets share one headless method. See step_sankey_data for the full parameter reference.

Examples

Basic

stream.step_matrix()

Path pattern

stream.step_sankey(path_pattern=".*->add_to_cart->.*->purchase->.*->path_end")

Diff mode

stream.step_sankey(diff=["platform", "mobile", "desktop"])