Simple Algorithms For Network Visualization
Simple Algorithms For Network Visualization
ISSNll1007-0214ll01/12llpp1-16
Volume 17, Number 4, August 2012
Michael J. McGuffin∗∗
Department of Software and IT Engineering, École de technologie supérieure, Montréal, H3C 1K3, Canada
Abstract: The graph drawing and information visualization communities have developed many sophisticated tech-
niques for visualizing network data, often involving complicated algorithms that are difficult for the uninitiated to
learn. This article is intended for beginners who are interested in programming their own network visualizations, or
for those curious about some of the basic mechanics of graph visualization. Four easy-to-program network layout
techniques are discussed, with details given for implementing each one: force-directed node-link diagrams, arc
diagrams, adjacency matrices, and circular layouts. A Java applet demonstrating these layouts, with open source
code, is available at http://www.michaelmcguffin.com/research/simpleNetVis/. The end of this article also briefly
surveys research topics in graph visualization, pointing readers to references for further reading.
Key words: network visualization; graph visualization; graph drawing; node-link diagram; force-directed layout; arc
diagram; adjacency matrix; circular layout; tutorial
non-matrix approaches for visualizing networks, show- The most common graphical representation of a net-
ing how they can be combined, and how an ordering al- work is a node-link diagram, where each node is shown
gorithm (the barycenter heuristic) can be used for both. as a point, circle, polygon, or some other small graph-
After presenting simple algorithms for computing ical object, and each edge is shown as a line segment
different graph layouts, Section 6 presents simple met- or curve connecting two nodes. Many sophisticated al-
rics for network analysis. Finally, Section 7 surveys re- gorithms exist for computing the positions of nodes and
search topics in graph visualization with references to edges in such diagrams, such as the Sugiyama-Tagawa-
examples in the literature, to serve as launching points Toda algorithm [9] , which positions nodes on the levels
for researchers and students. of a hierarchical layout. We will instead consider a class
of algorithms based on force-directed layout [10, 11] for
1 Force-Directed Layout of Node-Link Dia- positioning the nodes. We imagine the nodes as physi-
grams cal particles that are initialized with random positions,
but are gradually displaced under the effect of various
forces, until they arrive at a final position. The forces
are defined by the chosen algorithm, and typically seek
to position adjacent nodes near each other, but not too
near.
Specifically, imagine that we simulate two forces:
a repulsive force between all pairs of nodes, and a
spring force between all pairs of adjacent nodes. Let
d be the current distance between two nodes, and de-
fine the repulsive force between them to be Fr = Kr /d 2
(a definition inspired by inverse-square laws such as
Coulomb’s law), where Kr is some constant. If the
nodes are adjacent, let the spring force between them be
Fs = Ks (d − L) (inspired by Hooke’s law), where Ks is
the spring constant and L is the rest length of the spring
(i.e., the length “preferred” by the edge, ignoring the
repulsive force).
To implement this force-directed layout, assume that
the nodes are stored in an array nodes[], where each
element of the array contains a position x, y and the net
force force_x, force_y acting on the node. The
forces are simulated in a loop that computes the net
Fig. 1 Force-directed node-link diagrams of a 43-node, 80-
forces at each time step and updates the positions of
edge network. Top: a low spring constant makes the edges
more flexible. Bottom: a high spring constant makes them
the nodes, hopefully until the layout converges to some
more stiff. usefully distributed positions. Fig. 1 shows the results
of many iterations of such a loop. The inner body of the
We use the term network as a synonym for graph, which simulation loop could be implemented like this:
can be defined as an ordered pair (N, E) of a set N of
1 L = ... // spring rest length
nodes and a set E of edges. In an undirected graph, 2 K_r = ... // repulsive force constant
each edge is an unordered pair of nodes, i.e., E ⊆ 3 K_s = ... // spring constant
4 delta_t = ... // time step
{{x, y}|x, y ∈ N}. Two nodes n1 , n2 ∈ N are adjacent if 5
and only if there exists an edge {n1 , n2 } ∈ E, in which 6 N = nodes.length
7
case n1 and n2 are neighbors. The degree of a node is
8 // initialize net forces
the number of neighbors it has. In a directed graph, 9 for i = 0 to N-1
each edge is an ordered pair, i.e., E ⊆ {(x, y)|x, y ∈ N}, 10 nodes[i].force_x = 0
11 nodes[i].force_y = 0
and the edge (x, y) is distinct from the edge (y, x). We 12
will be concerned primarily with undirected graphs. 13 // repulsion between all pairs
Michael J. McGufffin: Simple Algorithms for Network Visualization: A Tutorial 3
relatively small random graph. As can be seen, the mul- and edges drawn as 180-degree arcs. (Interestingly, in
tiple crossings of edges can make it unclear when cer- Wattenberg’s work, the thickness of arcs is varied, to
tain edges pass close to a node or are connected to a show the length of substrings.)
node. Also, in such layouts where the nodes are rather It is important that the arcs in the diagram all cover
closely packed, there isn’t much room left to display the same angle, such as 180 degrees. This way, an arc
labels or other information associated with each node. between nodes n1 and n2 will extend outward by a dis-
The following sections present alternative ways of de- tance proportional to the distance between n1 and n2 ,
Michael J. McGufffin: Simple Algorithms for Network Visualization: A Tutorial 5
Lines 1 through 14 would be inside a loop that it- 3 Adjacency Matrix Representations
erates several times, hopefully until convergence to a
near-optimal ordering. Figure 3, middle, shows an arc An adjacency matrix (Figure 5, top) contains one row
diagram after several iterations of the barycenter heuris- and one column for each node of a network. Given
tic to improve the ordering of nodes, thereby reducing two nodes i and j, the cells located at (i, j) and ( j, i)
the length of arcs with respect to Figure 3, left. in the matrix contain information about the edge(s) be-
In practice, rather than converging, the algorithm tween the two nodes. Typically, each cell contains a
sometimes enters a cycle. Thus, a limit on the num- boolean value indicating if an edge exists between the
ber of iterations should be imposed, stopping the loop two nodes. (In the figures in this article, a true boolean
if the limit is reached (one rule of thumb is to limit the value is shown as a black, filled-in cell.) If the graph
number of iterations to kN, where N is the number of is undirected, the matrix is symmetric, i.e., the two cells
nodes and k is a small positive constant). Simple ways (i, j) and ( j, i) correspond to the same edge. If the graph
to improve the algorithm would be to (1) detect if it has is directed, however, the matrix is not symmetric.
converged to an ordering that does not change with ad- Visualizing a network as a matrix has the advantage
ditional iterations, and in such a case stop the loop; (2) of eliminating all edge crossings, since the edges cor-
detect cycles, and similarly stop the loop. respond to non-overlapping cells. However, in such a
Line 14 of the pseudocode sorts the contents of visualization, the ordering of rows and columns greatly
orderedNodes[] according to a comparator influences how easy it is to interpret the matrix. Fig-
defined by the calling code. Typical program- ure 5, top, has a random ordering, whereas Figure 5,
ming environments provide an efficient O(N log N) bottom, has had its rows and columns ordered according
Michael J. McGufffin: Simple Algorithms for Network Visualization: A Tutorial 7
Fig. 6 Patterns corresponding to interesting subgraphs appear along the diagonal of an appropriately ordered adjacency ma-
trix.
4 Circular Layouts
angle(p) = p*2*pi/N giving the angle of a node The first row of the table quantifies the space effi-
at position p. Then, the pseudocode for the barycenter ciency of each layout. This is done by assuming that
heuristic becomes each layout is confined to fill the same 1×1 square,
and by calculating the height of the labels on the nodes
1 // compute average position of neighbors
2 for i1 = 0 to N-1 as a function of the number N of nodes. For exam-
3 node1 = nodes[i1] ple, in a node-link diagram, if we assume the nodes
4 p1 = positionOfNode(i1)
5* sum_x = cos(angle(p1))
are distributed uniformly, then each node √ should√ be
6* sum_y = sin(angle(p1)) surrounded by an area of roughly (1/ N) × (1/ N)
7 for j = 0 to node1.neighbors.length-1 within which a label can be displayed without over-
8 i2 = node1.neighbors[j]
9 node2 = nodes[i2] lapping neighboring nodes (although such labels will,
10 p2 = positionOfNode(i2) generally, overlap edges). The height √ of such a label,
11* sum_x = sum_x + cos(angle(p2))
12* sum_y = sum_y + sin(angle(p2))
therefore, will be proportional to 1/ N. The height of
13* orderedNodes[p1].average the labels in the other layouts is always O(1/N), but
14* = angleOfVector(sum_x,sum_y) with different hidden constants. In particular, in an ad-
15
16 // sort the array according to the values of average jacency matrix, the hidden constant is k1 < 1 because
17 sort( orderedNodes, comparator ) margins must be reserved for the row and column la-
bels; and with MatLink, the hidden constant is k2 < k1
The above pseudocode is very similar to the pseu- since even larger margins must be reserved to display
docode given earlier for the barycenter heuristic. The the arcs. Thus, the columns of the above table are or-
only differences appear at lines 5-6 and 11-14, marked dered left-to-right, from best to worst space efficiency
with stars after their line numbers. Line 14 calls a func- in terms of label height.
tion angleOfVector() which simply computes the To explain the second to last row in the above table,
angle of a vector relative to the positive x axis, and can we point out that information such as edge type or edge
be implemented as: weight can be depicted in node-link diagrams and other
function angleOfVector( x, y ) non-matrix layouts by varying the color, thickness, or
hypotenuse = sqrt( x*x + y*y ) opacity of edges. However, this has a limited ability to
theta = arcsin( y / hypotenuse )
if x < 0 convey information. Matrix-based layouts, on the other
theta = pi - theta hand, can display richer information (such as a glyph)
// Now theta is in [-pi/2,3*pi/2]
if theta < 0
for each edge, because an entire cell is available for each
theta = theta + 2*pi edge.
// Now theta is in [0,2*pi] Designers may thus choose a layout from the above
return theta
table based on whatever criteria are most important to
Many improvements to the basic circular layout are them. Generally speaking, node-link diagrams may of-
proposed by Gansner and Koren [28] . In addition, Circos ten be best for showing the topology of the network in
[29] (http://circos.ca) is another visualization technique a clear and simple manner, so long as the network is
that uses a circular layout and curved arcs, though not not too dense. Matrix-based layouts are potentially best
specifically for visualizing network data. for dense networks, since they eliminate all inter-edge
occlusion. Arc diagrams may be best for integration
5 Comparison of Layout Techniques with other visual information, since they can be laid out
along a single axis of a larger diagram. Circular layouts
The following table contrasts the layout techniques ac-
may be best for making labels on the nodes larger than
cording to several criteria:
node-link circular arc adjacency is possible with arc diagrams.
diagram layout diagram matrix MatLink
√
Height of each node’s label O(1/ N) O(π /N) O(1/N) O(k1 /N) O(k2 /N)
A Java applet demonstrating these lay-
(best) (worst) outs, with open source code, is available at
Easy to perceive paths yes somewhat somewhat no somewhat
Avoids edge crossings no no no yes yes http://www.michaelmcguffin.com/research/simpleNetVis/.
Avoids ambiguity from edges no yes yes yes yes
passing close to nodes
Can depict an ordering of nodes no yes yes yes yes
Can depict information somewhat somewhat somewhat yes yes
about each edge
Node labels all have the same yes no yes yes yes
orientation, for easier reading
Michael J. McGufffin: Simple Algorithms for Network Visualization: A Tutorial 11
6 Elementary Node Metrics “18” initially has degree 6, but it is not part of a 6-core
or even the 3-core, because its neighbors “19” through
Visualizations are often enriched by computing auto-
“22” are removed for having a degree of only 2, causing
matic analyses of the data. For example, nodes in a lay-
the degree of “18” to drop to 2 and requiring it to also
out might be colored and/or ordered according to met-
be removed and excluded from the 3-core.
rics of how important or central each node is. One such
metric is simply the degree deg(n) of the node n, i.e.,
the number of neighbors n has. Nodes with a high de-
gree can be expected to be more important. In this sec-
tion, we explain two other metrics that can be computed
rather easily for each node.
The first is the clustering coefficient of the node,
which is a measure of how interconnected the neighbors
of a node are. If a node n has k = deg(n) neighbors, then
there are up to k(k − 1)/2 edges between those neigh-
bors. The clustering coefficient of n is the fraction of
such edges actually present. A clustering coefficient of
zero means none are present (i.e., none of n’s neigh-
bors are neighbors of each other), and a coefficient of
1.0 means that n and its neighbors form a complete sub-
graph. If m is the number of edges present between the
neighbors, the clustering coefficient is m/(k(k − 1)/2),
and can be computed with the following algorithm:
function clusteringCoefficient( i )
node = nodes[i]
deg = node.neighbors.length
Fig. 11 k-core decomposition of a graph. Shaded regions
if deg == 0 show the 1-core, 2-core, 3-core, and 4-core.
return 0 // this is arbitrary
if deg == 1
return 1 // this is arbitrary We then define the coreness of a node as the highest
count = 0 // num. edges present between neighbors integer k for which it is a member of the k-core. For
for j = 0 to deg-2
i2 = node.neighbors[j]
example, the coreness of node “18” is 2, whereas the
node2 = nodes[i2] nodes “00” through “04” as well as “12” through “17”
for k = j+1 to deg-1
have a coreness of 4.
i3 = node.neighbors[k]
node3 = nodes[i3] The three metrics mentioned, degree, clustering coef-
if edgeExistsBetween(node2,node3) ficient, and coreness, are just three of the many metrics
count = count + 1
return count / (deg * (deg-1) / 2)
that have been proposed in the literature. (Another often
used metric is betweenness, which is more complicated
The last metric we discuss is related to the k-core de- to compute. An efficient algorithm for it is given by
composition of a graph [30, 31] . To obtain the k-core of Brandes[32] .) Any of these metrics can be used to clas-
a graph, we remove all nodes with degree lower than k, sify nodes within a graph, and can be indicated using
updating the degrees of remaining nodes as we remove colors, or using a numerical label beside each node, or
lower-degree nodes. Figure 11 shows an example. Be- can be used to sort the nodes within an arc diagram or
cause all nodes in that figure initially have a degree of 1 other ordered layout. We can also position nodes on a
or greater, the 1-core is the entire graph. Imagine then 2D plane by mapping one metric to the x-axis and an-
removing all nodes of degree 1 (such as nodes “41” and other metric to the y-axis. Such an approach is some-
“42”), as well as all nodes whose degree has been re- times called an attribute-driven layout, an excellent ex-
duced to 1 by the removal of other nodes (specifically, ample of which is found in GraphDice [33] , a system
node “40”). When nodes can no longer be removed, where the user may choose to map any metric or at-
we are left with the 2-core. We then remove nodes of tribute to either the x or y axes.
degree 2 to obtain the 3-core, etc. Notice that node Much more information about network analysis, es-
12 Tsinghua Science and Technology, August 2012, 17(4): 000-000
pecially analysis of social networks, can be found in approaches mix matrix and node-link representations
Wasserman and Faust [34] . [40, 41] or display variants of the standard adjacency ma-
coarsely. ters over time (e.g., merging and splitting) [72, 73] , rather
GPU programming has been used to significantly ac- than emphasizing detailed topological information —
celerate layout computations, as described by Frishman an appropriate approach for large dynamic graphs.
and Tal [62] , allowing larger networks to be visualized. 7.8 Evaluation
It has also been proposed that, in some situations, the
Lee et al. [74] identify several tasks related to visual-
user may not be interested in seeing an overview of an
ization and analysis of graphs. Such a reference list of
entire large network. Instead, the user can be shown a
tasks can help make the design and evaluation of user
single initial node, from which the user can expand out-
interfaces more systematic.
ward, toward neighbors of interest, expanding the con-
Many perceptual questions surrounding graph visu-
text as desired [63] .
alization have been investigated, and many still remain
7.5 Graphs with Auxiliary Information to be explored. One recent example is by Holten et al.
[75] , who compared different ways of depicting directed
Graphs may be associated with additional informa-
tion that can be visualized beside, or on top of, the edges.
graph. For example, one recent approach for visual- Another recent user study [76] compared layouts of
izing subsets of nodes is given in [64] , which also sur- node-link diagrams generated algorithmically versus
veys other approaches for visualizing subsets. This is those arranged manually by users.
related to the challenge of visualizing a hypergraph, i.e.,
8 Conclusion
a graph with hyperedges that can be incident on more
than 2 nodes each. We have presented some elementary layout and analysis
7.6 Graphs from Multidimensional Data
algorithms, and given a brief sampling of research top-
ics within network visualization. Hopefully, this will
Imagine a relational data table listing sales of prod- whet the appetite of readers, encouraging them to track
ucts, with one column for the client identifier, one col- down some interesting references and try their hand at
umn for the product identifier, and other columns for programming some of the algorithms given. The graph
price, date, etc. Each row of the table corresponds to a visualization literature is already quite large and still
sale. From such a table, we might want to generate a growing, but many challenges remain, and real-world
bipartite network of links between clients and products applications are found wherever graphs can be used to
sold to them, or we might instead want to generate a net- model relationships or data.
work of clients with edges between two clients if they
bought the same product. Orion [65] and Ploceus [66] are
prototype software systems that allow such graphs to be References
easily generated from a relational database and subse- [1] Ivan Herman, Guy Melançon, and M. Scott Mar-
quently transformed. shall. Graph visualization and navigation in in-
Work in this vein can be thought of as a comple- formation visualization: A survey. IEEE Trans-
ment to attribute-driven layouts: GraphDice [33] and actions on Visualization and Computer Graphics
other attribute-driven layouts [36] display a network us- (TVCG), 6(1):24–43, 2000.
ing multidimensional visualization techniques (namely,
scatterplots and parallel coordinates), whereas Orion [2] T. von Landesberger, A. Kuijper, T. Schreck,
and Ploceus visualize multidimensional data as net- J. Kohlhammer, J. J. van Wijk, J.-D. Fekete, and
works. D. W. Fellner. Visual analysis of large graphs. In
EuroGraphics: State of the Art Report, 2010.
7.7 Dynamic Graphs
[3] Giuseppe Di Battista, Peter Eades, Roberto
Other recent work [22, 67–70] visualizes networks that
Tamassia, and Ioannis G. Tollis. Graph Draw-
change over time, using small multiples, animation, or
ing: Algorithms for the Visualization of Graphs.
by showing the differences between two instances of the
Prentice-Hall, 1999.
graph (e.g., at times t and t + 1). Some visualizations of
dynamic graphs extend the adjacency matrix to show [4] Michael Kaufmann and Dorothea Wagner, editors.
the temporal dimension [27, 71] . Others identify clusters Drawing Graphs: Methods and Models. Springer,
within the graph and show overall changes of the clus- 2001.
14 Tsinghua Science and Technology, August 2012, 17(4): 000-000
[5] David Auber. Tulip: A huge graph visualization In Proceedings of Symposium on Graph Drawing
framework, 2004. A chapter (pp. 105–126) in (GD), 2004.
Michael Jünger and Petra Mutzel, editors, Graph
[16] Arne Frick, Andreas Ludwig, and Heiko Mehldau.
Drawing Software, Springer.
A fast adaptive layout algorithm for undirected
[6] D. Auber, D. Archambault, R. Bourqui, A. Lam- graphs. In Proceedings of Symposium on Graph
bert, M. Mathiaut, P. Mary, M. Delest, J. Dubois, Drawing (GD), 1994.
and G. Melançon. The Tulip 3 framework: A scal-
[17] Martin Wattenberg. Arc diagrams: Visualizing
able software library for information visualiza-
structure in strings. In Proceedings of IEEE
tion applications based on relational data. Techni-
Symposium on Information Visualization (Info-
cal Report RR-7860, INRIA Bordeaux Sud-Ouest,
Vis), pages 110–116, 2002.
2012.
[18] Jacques Bertin. Sémiologie graphique: Les di-
[7] Vladimir Batagelj and Andrej Mrvar. Pajek – pro-
agrammes, Les réseaux, Les cartes. Éditions
gram for large network analysis. Connections,
Gauthier-Villars, Paris, 1967. (2nd edition 1973,
21(2), 1998.
English translation 1983).
[8] Paul Shannon, Andrew Markiel, Owen Ozier,
[19] Innar Liiv. Seriation and matrix reordering meth-
Nitin S. Baliga, Jonathan T. Wang, Daniel Ram-
ods: An historical overview. Statistical Analysis
age, Nada Amin, Benno Schwikowski, and Trey
and Data Mining, 3(2):70–91, April 2010.
Ideker. Cytoscape: A software environment for
integrated models of biomolecular interaction net- [20] Nathalie Henry. Exploring Social Networks with
works. Genome Research, 13:2498–2504, 2003. Matrix-based Representations. PhD thesis, Uni-
versité Paris Sud, France, and University of Syd-
[9] Kozo Sugiyama, Shojiro Tagawa, and Mitsuhiko
ney, Australia, 2008.
Toda. Methods for visual understanding of hier-
archical system structures. IEEE Transactions on [21] Erkki Mäkinen and Harri Siirtola. The barycenter
Systems, Man, and Cybernetics, SMC-11(2):109– heuristic and the reorderable matrix. Informatica,
125, February 1981. 29(3):357–363, 2005.
[10] Peter Eades. A heuristic for graph drawing. Con- [22] Martin Greilich, Michael Burch, and Stephan
gressus Numerantium, 42:149–160, 1984. Diehl. Visualizing the evolution of compound di-
graphs with TimeArcTrees. Computer Graphics
[11] Thomas M. J. Fruchterman and Edward M. Rein-
Forum, 28(3):975–982, 2009.
gold. Graph drawing by force-directed placement.
Software: Practice and Experience, 21(11):1129– [23] A. Johannes Pretorius and Jarke J. van Wijk.
1164, 1991. Visual analysis of multivariate state transition
graphs. IEEE Transactions on Visualization
[12] Chun-Cheng Lin and Hsu-Chun Yen. A new force-
and Computer Graphics (TVCG), 12(5):685–692,
directed graph drawing method based on edge-
2006.
edge repulsion. Journal of Visual Languages and
Computing, 29(1):29–42, 2012. [24] Mohammad Ghoniem, Jean-Daniel Fekete, and
Philippe Castagliola. On the readability of graphs
[13] Andreas Noack. Energy-based clustering of
using node-link and matrix-based representations:
graphs with nonuniform degrees. In Proceedings
Controlled experiment and statistical analysis. In-
of Symposium on Graph Drawing (GD), 2005.
formation Visualization, 4(2):114–135, 2005.
[14] Tomihisa Kamada and Satoru Kawai. An algo-
[25] Nathalie Henry and Jean-Daniel Fekete. MatLink:
rithm for drawing general undirected graphs. In-
Enhanced matrix visualization for analyzing so-
formation Processing Letters, 31(1):7–15, 1989.
cial networks. In Proceedings of IFIP TC13 In-
[15] Emden R. Gansner, Yehuda Koren, and Stephen ternational Conference on Human-Computer In-
North. Graph drawing by stress majorization. teraction (INTERACT), pages 288–302, 2007.
Michael J. McGufffin: Simple Algorithms for Network Visualization: A Tutorial 15
[26] Zeqian Shen and Kwan-Liu Ma. Path visualiza- and parallel scatterplot matrix: Hybrid multidi-
tion for adjacency matrices. In Proceedings of mensional visualizations for network exploration.
Eurographics/IEEE-VGTC Symposium on Visual- IEEE Transactions on Visualization and Computer
ization (EuroVis), pages 83–90, 2007. Graphics (TVCG), 16(6):1100–1108, 2010.
[27] Ulrik Brandes and Bobo Nick. Asymmetric rela- [37] Sanjay Kairam, Diana MacLean, Manolis Savva,
tions in longitudinal social networks. IEEE Trans- and Jeffrey Heer. GraphPrism: Compact visual-
actions on Visualization and Computer Graphics ization of network structure. In Proceedings of
(TVCG), 17(12):2283–2290, 2011. ACM Advanced Visual Interfaces (AVI), 2012.
[38] Martin Krzywinski, Inanc Birol, Steven J. M.
[28] Emden Gansner and Yehuda Koren. Improved cir-
Jones, and Marco A. Marra. Hive plots – ratio-
cular layouts. In Proceedings of Symposium on
nal approach to visualizing networks. Briefings in
Graph Drawing (GD), pages 386–398, 2006.
Bioinformatics, 2011. http://www.hiveplot.com/.
[29] Martin I. Krzywinski, Jacqueline E. Schein, Inanc [39] Daniel Archambault, Tamara Munzner, and David
Birol, Joseph Connors, Randy Gascoyne, Doug Auber. TopoLayout: Multilevel graph layout
Horsman, Steven J. Jones, and Marco A. Marra. by topological features. IEEE Transactions on
Circos: An information aesthetic for comparative Visualization and Computer Graphics (TVCG),
genomics. Genome Research, 2009. 13(2):305–317, 2007.
[30] Vladimir Batagelj and Matjaž Zaveršnik. An O(m) [40] Nathalie Henry, Jean-Daniel Fekete, and
algorithm for cores decomposition of networks, Michael J. McGuffin. NodeTrix: A hybrid
2003. http://arxiv.org/abs/cs/0310049v1. visualization of social networks. IEEE Transac-
tions on Visualization and Computer Graphics
[31] Ignacio Alvarez-Hamelin, Luca Dall’Asta, (TVCG), 13(6):1302–1309, 2007.
Alain Barrat, and Alessandro Vespignani.
k-core decomposition: a tool for the vi- [41] Sébastien Rufiange, Michael J. McGuffin, and
sualization of large scale networks, 2005. Christopher P. Fuhrman. TreeMatrix: A hybrid
http://arxiv.org/abs/cs/0504107v2. visualization of compound graphs. Computer
Graphics Forum, 31(1):89–101, 2012.
[32] Ulrik Brandes. A faster algorithm for between-
[42] Anastasia Bezerianos, Pierre Dragicevic, Jean-
ness centrality. Journal of Mathematical Sociol-
Daniel Fekete, Juhee Bae, and Ben Watson. Ge-
ogy, 25(2):163–177, 2001.
neaQuilts: A system for exploring large genealo-
[33] Anastasia Bezerianos, Fanny Chevalier, Pierre gies. IEEE Transactions on Visualization and
Dragicevic, Niklas Elmqvist, and Jean-Daniel Computer Graphics (TVCG), 16(6):1073–1081,
Fekete. GraphDice: A system for exploring mul- 2010.
tivariate social networks. Computer Graphics Fo- [43] Juhee Bae and Benjamin A. Watson. Developing
rum, 29(3):863–872, 2010. and evaluating quilts for the depiction of large lay-
ered graphs. IEEE Transactions on Visualization
[34] Stanley Wasserman and Katherine Faust. Social
and Computer Graphics (TVCG), 17(12):2268–
Network Analysis. Cambridge University Press,
2275, 2011.
1994.
[44] Danny Holten. Hierarchical edge bundles: Visual-
[35] Ka-Ping Yee, Danyel Fisher, Rachna Dhamija, ization of adjacency relations in hierarchical data.
and Marti Hearst. Animated exploration of dy- IEEE Transactions on Visualization and Computer
namic graphs with radial layout. In Proceedings Graphics (TVCG), 12(5):741–748, 2006.
of IEEE Symposium on Information Visualization
(InfoVis), pages 43–50, 2001. [45] Danny Holten and Jarke J. van Wijk. Force-
directed edge bundling for graph visualiza-
[36] Christophe Viau, Michael J. McGuffin, Yves tion. Computer Graphics Forum (EuroVis 2009),
Chiricota, and Igor Jurisica. The FlowVizMenu 28(3):983–990, 2009.
16 Tsinghua Science and Technology, August 2012, 17(4): 000-000
[46] Sergey Pupyrev, Lev Nachmanson, and Michael [55] Michael J. McGuffin and Igor Jurisica. Inter-
Kaufmann. Improving layered graph layouts with action techniques for selecting and manipulating
edge bundling. In International Symposium on subgraphs in network visualizations. IEEE Trans-
Graph Drawing (GD), 2010. actions on Visualization and Computer Graphics
(TVCG), 15(6):937–944, 2009.
[47] Ozan Ersoy, Christophe Hurter, Fernando V.
Paulovich, Gabriel Cantareira, and Alexandru [56] Nelson Wong, Sheelagh Carpendale, and Saul
Telea. Skeleton-based edge bundling for graph vi- Greenberg. EdgeLens: An interactive method for
sualization. IEEE Transactions on Visualization managing edge congestion in graphs. In Proceed-
and Computer Graphics (TVCG), 17(12):2364– ings of IEEE Symposium on Information Visual-
2373, 2011. ization (InfoVis), pages 51–58, 2003.
[48] Frances J. Newbery. Edge concentration: A
[57] Nelson Wong and Sheelagh Carpendale. Sup-
method for clustering directed graphs. In Proceed-
porting interactive graph exploration using edge
ings International Workshop on Software Config-
plucking. In Proceedings of Visualization and
uration Management (SCM), pages 76–85, 1989.
Data Analysis (VDA), 2007.
[49] Frank van Ham, Martin Wattenberg, and Fer-
nanda B. Viégas. Mapping text with phrase nets. [58] Nathalie Henry Riche, Tim Dwyer, Bongshin Lee,
IEEE Transactions on Visualization and Computer and Sheelagh Carpendale. Exploring the design
Graphics (TVCG), 15(6):1169–1176, 2009. space of interactive link curvature in network dia-
grams. In Proceedings of ACM Advanced Visual
[50] Matthew Dickerson, David Eppstein, Michael T. Interfaces (AVI), 2012.
Goodrich, and Jeremy Yu Meng. Confluent draw-
ings: Visualizing non-planar diagrams in a planar [59] Mathias Frisch, Jens Heydekorn, and Raimund
way. In International Symposium on Graph Draw- Dachselt. Investigating multi-touch and pen ges-
ing (GD), 2003. tures for diagram editing on interactive surfaces.
In Proceedings of ACM International Conference
[51] Loı̈c Royer, Matthias Reimann, Bill Andreopou-
on Interactive Tabletops and Surfaces (ITS), 2009.
los, and Michael Schroeder. Unraveling protein
networks with power graph analysis. PLoS Com- [60] Sebastian Schmidt, Miguel A. Nacenta, Raimund
putational Biology, 4(7), 2008. Dachselt, and Sheelagh Carpendale. A set of
[52] Tomer Moscovich, Fanny Chevalier, Nathalie multi-touch graph interaction techniques. In Pro-
Henry, Emmanuel Pietriga, and Jean-Daniel ceedings of ACM International Conference on In-
Fekete. Topology-aware navigation in large net- teractive Tabletops and Surfaces (ITS), 2010.
works. In Proceedings of ACM Conference on Hu-
[61] Emden R. Gansner, Yehuda Koren, and Stephen C.
man Factors in Computing Systems (CHI), 2009.
North. Topological fisheye views for visualizing
[53] Michel Beaudouin-Lafon, Wendy E. Mackay, large graphs. IEEE Transactions on Visualization
Peter Andersen, Paul Janecek, Mads Jensen, and Computer Graphics (TVCG), 11(4):457–468,
Michael Lassen, Kasper Lund, Kjeld Mortensen, 2005.
Stephanie Munck, Anne Ratzer, Katrine Ravn,
Søren Christensen, and Kurt Jensen. CPN/Tools: [62] Yaniv Frishman and Ayellet Tal. Multi-level
A post-WIMP interface for editing and simulating graph layout on the GPU. IEEE Transactions
coloured petri nets. In Proc. International Con- on Visualization and Computer Graphics (TVCG),
ference on Application and Theory of Petri Nets 13(6):1310–1319, 2007.
(ICATPN), pages 71–80, 2001.
[63] Frank van Ham and Adam Perer. “search,
[54] Michael J. McGuffin and Ravin Balakrishnan. In- show context, expand on demand”: Supporting
teractive visualization of genealogical graphs. In large graph exploration with degree-of-interest.
Proceedings of IEEE Symposium on Information IEEE Transactions on Visualization and Computer
Visualization (InfoVis), pages 17–24, 2005. Graphics (TVCG), 15(6):953–960, 2009.
Michael J. McGufffin: Simple Algorithms for Network Visualization: A Tutorial 17
[64] Basak Alper, Nathalie Henry Riche, Gonzalo Computer Graphics (TVCG), 17(12):2334–2343,
Ramos, and Mary Czerwinski. Design study 2011.
of LineSets, a novel set visualization technique.
[71] Ji Soo Yi, Niklas Elmqvist, and Seungyoon Lee.
IEEE Transactions on Visualization and Computer
TimeMatrix: Analyzing temporal social networks
Graphics (TVCG), 17(12):2259–2267, 2011.
using interactive matrix-based visualizations. In-
[65] Jeffrey Heer and Adam Perer. Orion: A sys- ternational Journal of Human-Computer Interac-
tem for modeling, transformation and visualiza- tion, 26:1031–1051, 2010.
tion of multidimensional heterogeneous networks.
[72] Martin Rosvall and Carl T. Bergstrom. Mapping
In Proceedings of IEEE Visual Analytics Science
change in large networks. PLoS ONE, 5(1), 2010.
and Technology (VAST), 2011.
[73] Khairi Reda, Chayant Tantipathananandh, An-
[66] Zhicheng Liu, Shamkant B. Navathe, and John T. drew Johnson, Jason Leigh, and Tanya Berger-
Stasko. Network-based visual analysis of tabular Wolf. Visualizing the evolution of community
data. In Proceedings of IEEE Visual Analytics Sci- structures in dynamic social networks. Computer
ence and Technology (VAST), 2011. Graphics Forum, 30(3):1061–1070, 2011.
[67] Daniel Archambault, Helen C. Purchase, and [74] Bongshin Lee, Catherine Plaisant, Cynthia Sims
Bruno Pinaud. Difference map readability for dy- Parr, Jean-Daniel Fekete, and Nathalie Henry.
namic graphs. In Proceedings of Symposium on Task taxonomy for graph visualization. In Pro-
Graph Drawing (GD), pages 50–61, 2010. ceedings of AVI workshop BEyond time and er-
rors: novel evaLuation methods for Information
[68] Daniel Archambault, Helen C. Purchase, and Visualization (BELIV), 2006.
Bruno Pinaud. Animation, small multiples, and
the effect of mental map preservation in dy- [75] Danny Holten, Petra Isenberg, Jarke J. van Wijk,
namic graphs. IEEE Transactions on Visualization and Jean-Daniel Fekete. An extended evaluation
and Computer Graphics (TVCG), 17(4):539–552, of the readability of tapered, animated, and tex-
2011. tured directed-edge representations in node-link
graphs. In Proceedings of IEEE Pacific Visualiza-
[69] Loutfouz Zaman, Ashish Kalra, and Wolfgang tion (PacificVis), pages 195–202, 2011.
Stuerzlinger. The effect of animation, dual view,
difference layers, and relative re-layout in hierar- [76] Tim Dwyer, Bongshin Lee, Danyel Fisher,
chical diagram differencing. In Proc. Graphics In- Kori Inkpen Quinn, Petra Isenberg, George
terface (GI), pages 183–190, 2011. Robertson, and Chris North. A comparison
of user-generated and automatic graph layouts.
[70] Steffen Hadlak, Hans-Jörg Schulz, and Heidrun IEEE Transactions on Visualization and Computer
Schumann. In situ exploration of large dynamic Graphics (TVCG), 15(6):961–968, 2009.
networks. IEEE Transactions on Visualization and