Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi All,
I have to create a viz to show how data is flowing sequentially through different steps in a process . We are looking to use Sankey chart (Vizlib or Qlik Viz bundle) to make this.
We have a field where we capture all the steps that an ID goes through. Take the below view as an example, when this ID is selected, we would like to see 5 slabs(horizontal) for every Step.
ID | Step |
1 | Step 1 |
1 | Step 2 |
1 | Step 3 |
1 | Step 4 |
1 | Step 5 |
If I use the Step field as my dimension then all the 5 Steps will come in one vertical line but the requirement is to show them horizontally in 5 different slabs to show the actual flow.
Please keep in mind that we have around 20 distinct Steps currently and flow is bi-directional so we can go back and forth which means total number of steps could be greater than 20.
Any suggestion will be highly appreciated. I am also open to other charts suggestions if they serve the purpose.
Thanks!
Hi @pranaview,
I would consider not using so many slabs going across your Sankey but instead simplifying it down to a "From" and "To" slab. This will demonstrate backward movement from Step 3 to Step 2 perhaps more clearly as you would have to introduce slabs that only show movement from Step 3 to Step 2. I think this would cause an exponential problem as you'd have to account for every possible recursive movement.
Here's an example I created based on your data and I think you can see where the ratio of ID's that have progressed through to the next step and those that have reverted back a step. This will also demonstrate where an ID has skipped a step. (If that's possible in your process)
This code creates a column showing where the step moved to for purposes of the dimension in the Sankey.
Data:
load * Inline [
ID Step TransferDate
1 Step 1 1/01/2020
1 Step 2 3/01/2020
1 Step 3 5/01/2020
1 Step 4 6/01/2020
1 Step 5 10/01/2020
2 Step 1 1/01/2020
2 Step 2 3/01/2020
2 Step 1 5/01/2020
2 Step 2 6/01/2020
2 Step 3 10/01/2020
3 Step 1 1/01/2020
3 Step 2 3/01/2020
3 Step 3 5/01/2020
3 Step 4 6/01/2020
3 Step 3 10/01/2020
3 Step 4 12/01/2020
3 Step 5 15/01/2020
](delimiter is '\t');
Output:
load *,
if(peek(ID) <> ID,
null(), peek(Step)) as StepTo
resident Data
order by ID, TransferDate desc;
drop table Data;
Thanks
Anthony