Sankey Plot / Alluvial Flow Diagram

version 1.0.0 (3.7 KB) by Roman Kuster
Function to create a sankey plot / alluvial flow diagram to visualise the group membership and its change over time.


Updated 24 Jun 2021

View License

Function to create a sankey plot / alluvial flow diagram with numerical data stored in InputData (e.g. categories 0, 1, and 2). Each row in InputData represents a subject, and each column represents a timepoint. The entries in InputData reflect the group a particular subject was assigned to at a particular timepoint, and the plot visualises the flow of group membership over all timepoints.
- size(InputData,1) corresponds to the number of subjects
- size(InputData,2) corresponds to the number of timepoints
- entries represent the category a subject belongs to at a given timepoint
Example Data with 5 subjects, 4 timepoints, and 3 categories: InputData = [0,0,1,0;2,1,2,2;1,1,0,1;0,1,1,2;1,2,2,2];
The highest category (2 in example data) is assigned to the top bar, the lowest category to the bottom bar. Can be modified by change the order in categories. The bars are coloured from green (top) to red (bottom), and the percentage of subjects belonging to each category is indicated in the middle of the bar.
Function calls the modified function sankey_alluvialflow initially written by Alexander Carmeli (Alluvial flow diagram, available from: and modified by Ranran Wang (Sankey Diagram, available from:

Cite As

Roman Kuster (2022). Sankey Plot / Alluvial Flow Diagram (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Inspired by: Sankey Diagram, Alluvial flow diagram

Inspired: Sankey flow chart

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!