Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
cancel
Showing results for 
Search instead for 
Did you mean: 
pranaview
Creator III
Creator III

How to use Sankey Chart to show a process flow

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!

 

Labels (1)
1 Reply
anthonyj
Creator III
Creator III

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)

anthonyj_0-1649287578781.png

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