Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clustered Graphs Visualization Techniques

I need to visualize a relatively large graph (6K nodes, 8K edges) that has the following properties:

  • Distinct Clusters. Approximately 50-100 Nodes per cluster and moderate interconnectivity at the cluster level
  • Minimal (5-10 inter-cluster edges per cluster) interconnectivity between clusters

Let global edge overlap = The edge overlaps caused by directly visualizing a graph of Clusters = {A, B, C, D, E}, Edges = {Pentagram of those clusters, which is non-planar by the way and will definitely generate edge overlap if you draw it out directly}

Let Local Edge Overlap = the above but { A, B, C, D, E } are just nodes.

I need to visualize graphs with the above in a way that satisfies the following requirements

  • No global edge overlap (i.e. edge overlaps caused by inter-cluster properties is not okay)
  • Local edge overlap within a cluster is fine

Anyone have thoughts on how to best visualize a graph with the requirements above?

One solution I've come up with to deal with the global edge overlap is to make sure a cluster A can only have a max of 1 direct edge to another cluster (B) during visualization. Any additional inter-cluster edges between cluster A -> C, A -> D, ... are disconnected and additional node/edges A -> A_C, C -> C_A, A -> A_D, D -> D_A... are created.

Anyone have any thoughts?

like image 588
jameszhao00 Avatar asked Mar 01 '10 15:03

jameszhao00


People also ask

How do you visualize cluster data?

To visualize the clusters you can use one of the most popular methods for dimensionality reduction, namely PCA and t-SNE.

What is clustering visualization?

Cluster visualization renders your cluster data as an interactive map allowing you to see a quick overview of your cluster sets and quickly drill into each cluster set to view subclusters and conceptually-related clusters.

What are the methods of cluster analysis?

The clustering methods can be classified into the following categories: Partitioning Method. Hierarchical Method. Density-based Method.


2 Answers

Prefuse has some good graph drawing link text algorithms built in and it seems to handle fairly large graphs relatively well. You might try Flow Map Layout which is built on top of Prefuse.

like image 159
Jay Askren Avatar answered Sep 23 '22 05:09

Jay Askren


Given your objectives, I think that the Fruchterman-Reingold algorithm does a pretty decent job of preventing edge overlap. See for example this screenshot of a network consisting of multiple components drawn using the Fruchterman-Reingold algorithm. IGraph has built-in support for this algorithm (as does Networkx I believe) and is really fast.

like image 24
DrDee Avatar answered Sep 21 '22 05:09

DrDee