How to visualize common pattern of state changes over time? I have a process which checks workers in a service once a day.  When it checks them, they will have one of a few states:

*

*Unknown - Either brand new or the worker is offline

*Inprogress - When checked, an operation was blocking the machine

*Error - Something went wrong

*Complete - everything is perfect

*CorrectionWasRequired - everything is perfect but we had to do something to make it happen.

The data set looks like this:




machineID
StatusHistoryInOrder




First
Unknown,InProgress,Complete,Error,Error,CorrectionWasRequired,Complete


Second
Unknown,Complete,Complete,Complete,Complete...


ProblemChild
Unknown, Error, Error...


MissingMachine
Unknown....




Right now, they do not have the same number of data points but I can pad them if that makes it easier (repeating the last state X times until all are equal length)
The data points are in ascending timestamp order, so each represents one day, from oldest to newest.
My goal is to visualize and understand the most common sets of statuses that my devices end up in.
My questions are :

*

*Is this the right type of visualization to use?

*Is this the easiest approach to analyze my status histories to find the 5 most common patterns?

*Tips for rendering this?

I am trying to work up a ribbon view, like so.  In this mockup, I'm showing one machine only.


*

*I think your visualization is okay to show common paths of state change.  However, it skims over some of the detail of the probability of all the devices changing states.  For that reason I would suggest a Sankey diagram.  Example below, instead of Severity at Weeks 0, 1, 3, etc., you would have Status at Time 0, 1, 2, etc.




*Again, I recommend a Sankey diagram to get a picture of all devices, but your diagram does show a specific example nicely.


*Sankey diagrams can be built in R with the networkD3 package, how to use tutorial here.  I don't know how to render your custom graphic.
