I have created a block model in networkx, against a Louvian best fit partitioning of a social graph. This model includes for each block model cluster:

  • density
  • number of edges
  • number of nodes

as well as this edge property:

  • weight which = cross-cluster links

I visualized this as a network, and the varying thickness of connections between clusters is interesting. Clusters connect to other clusters at varying rates, and this is can be interpreted as business logic.

I believe a Circos chart will visualize this much better, so I am creating a circosJS chart using d3. This is what a first pass looks like:

Initial pass of chord visualization

To start, I have made the width of each circle span equal to the number of nodes in that cluster. Now I need to map the width of the sending and receiving ends of the chords. This scale is different than the number of nodes within a cluster, as it represents the number of connections between clusters.

I have three questions:

  1. How should I determine the width of the base of a chord, given the data I have? I can choose number of nodes or edges in that cluster, or something based on the in/out-bound connections to that cluster.
  2. How should I determine how much of a chord an outbound connection spans?
  3. How should I determine how much of a chord an in-bound connection spans?
  4. Is there another, better visualization type without these tough choices?

If I choose a within-cluster metric for the chord base, I switch units when I determine chord start/end width using between-cluster metrics. I think this will tend to distort the visualization. On the other hand, if I choose something like the total in-bound connections between clusters, I get to use the same unit but I ignore the raw size of a cluster. Neither solutions seems desirable.

  • $\begingroup$ I'm hoping the answer to #4 is yes because I've never found these types of charts very useful. If you can share your data maybe people can experiment and suggest alternatives. $\endgroup$ – xan Jul 22 '15 at 19:21
  • $\begingroup$ I started out with six nodes in a network viz laid out by hand in a hexagon. I could interpret that ok, but this seems better. $\endgroup$ – rjurney Jul 22 '15 at 19:22
  • $\begingroup$ I wondering about a heat map matrix. Six row and six columns colored by the connections between the row-to-column. Or maybe even a mosaic plot... $\endgroup$ – xan Jul 22 '15 at 19:29
  • $\begingroup$ A heat map would work, except that it won't show the relative size for each group. I.e. A small group has cool edges. $\endgroup$ – rjurney Jul 22 '15 at 19:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.