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: www.mathworks.com/matlabcentral/fileexchange/66746-alluvial-flow-diagram) and modified by Ranran Wang (Sankey Diagram, available from: www.mathworks.com/matlabcentral/fileexchange/75813-sankey-diagram).