I have hierarchical data that looks like this:
I need to come up with a way to display it with the requirements I'll list momentarily. It is not a tree because there can be cycles (ignore directed-ness of edges in the image). There are parent/child relationships though and different hierarchical levels (e.g., the green nodes can only be children of white nodes and parents of red nodes).
The relations can be complicated so there can be lots of edges. I'd like a way to visualize the data without drawing edges and with the ability to filter out certain paths. E.g. if I choose n1, I want to see just n1, n5, n10, and n14.
I was thinking something like the 'Icicle' Layout provided by http://flare.prefuse.org/demo. The hierarchy view is there and no messy edges. Selecting a node can cause some stuff to be filtered out as well. The problem is that such a view implies the data is a tree. One block can't be a child of multiple parent blocks.
Are there any standard ways this type of data is viewed? In the simplest case, are there are visualization libraries that can draw an arbitrary graph and let you specify the fixed hierarchical levels shown in the image?