MultiPlane: a New Framework for Drawing Graphs in Three (2 ) Dimensions 1 2
Seok-Hee Hong
NICTA IMAGEN and School of Information Technologies The University of Sydney
[email protected] ABSTRACT This paper describes a new framework for drawing graphs in 2 12 dimensions. In general, the framework uses a divide and conquer approach. More specifically, the framework divides a graph into a set of smaller subgraphs, and then draws each subgraph in a 2D “plane” (a bounded planar region). Finally, a 2 12 drawing of the graph is constructed by these planes in 3D, satisfying optimisation criteria. The framework is very flexible; we briefly describe a number of algorithms that follow the framework. Algorithms that follow this framework vary in computational complexity, depending on the type of graph and the optimisation criteria that are chosen. The resulting drawing can reduce visual complexity and occlusion, and is easy to navigate. Some optimisation problems arise from the framework; we describe some simple approaches to these problems. Preliminary results suggest that the new framework can be useful for visual analysis of large and complex networks such as social networks and biological networks.
Keywords Metaphor, Graph drawing, Information Visualisation, Three Dimensions, Large and Complex Networks.
1.
INTRODUCTION
Recent technological advances have led to the production of a lot of data, and consequently have led to many large and complex network models in many domains. Examples include: • Social networks: These include telephone call graphs (used to trace terrorists), money movement networks (used to detect money laundering), and citation networks or collaboration networks. These networks can be very large. • Biological networks: Protein-protein interaction (PPI) networks, metabolic pathways, gene regulatory net-
Copyright is held by the author/owner. AVI’06, May, 2006, Venice, Italy. ACM 0-89791-88-6/97/05.
works and phylogenetic networks are used by biologists to analyse and engineer biochemical materials. In general, they have only a few thousand nodes; however, the relationships are very complex. • Software engineering: Large-scale software engineering deals with very large sets of software modules and relationships between them. Analysis of such networks is essential for design, performance tuning, and refactoring legacy code. • Webgraphs, where the nodes are web pages and relationships are hyperlinks, are somewhat similar to social networks and software graphs. They are huge: the whole web consists of billions of nodes. Visualisation can be an effective analysis tool for such networks. Good visualisation reveals the hidden structure of the networks and amplifies human understanding, thus leading to new insights, findings and predictions. However, constructing good visualizations of such networks can be very challenging. Recently, many methods for visualisation of large graphs have been suggested. For example, see the recent proceedings of Graph Drawing or Information Visualisation conferences. Methods include fast multi-level force directed methods, spectral graph drawing, geometric or combinatorial clustering methods, and multidimensional scaling methods. However, current visualisation methods tends to exhibit one or more of the following problems: • Scalability: current methods for visualisation of large graphs can handle, at best, a few thousand nodes. Most methods do not scale well, in two ways: – Computational efficiency (runtime). – Visual complexity: humans have limited ability in both cognition and perception. A drawing of millions of nodes can be cluttered, making it difficult to recognise patterns and inhibiting good insight on the data set. • Domain complexity: In practice, the networks have properties that must be represented visually. For example, in a social network, some nodes are more important (higher centrality) than others. For many biological networks, there are established layout conventions for specific subnetworks. The layout algorithms must respect these domain-dependent constraints.
• Interaction/navigation methods: each visualisation method should be accompanied by good navigation methods for exploration of the data. This is critical for further analysis, findings, understandings or even prediction of the structure of the networks. Design of good navigation methods may dependent to a specific visualisation methods. Affordable high quality 3D graphics in every PC has motivated a great deal of research in 3D graph drawing over the last ten to fifteen years. The proceedings of the annual Graph Drawing conferences document these developments. Three dimensional graph drawings with a variety of aesthetics and edge representations have been extensively studied (see [6, 9, 14, 20, 16, 26]). Examples include algorithms for 3D orthogonal drawing with a limited number of bends, 3D straight-line grid drawing algorithms with good resolution (volume), and 3D graph drawing algorithms that maximise symmetry. Laboratory experiments have shown that 3D graph visualisations can be up to three times more readable than 2D [27]. However, the availability of the 3rd dimension has made little impact on graph visualisation industry; currently no major graph visualization provider uses 3D. Even though these 3D algorithms of the past 10 years are theoretically significant, none of them have been adopted by the commercial graph drawing software providers. Thus achieving good 3D visualisation remains a challenging problem. A number of researchers have recently pointed out that full use of 3D layout may not be helpful [2, 4, 7, 15, 23, 29]. Ware [29] advocates a “2 12 design attitude”, using 3D depth selectively and paying special attention to 2D layout. He indicates that this may provide the best match with the limited 3D capabilities of the human visual system. In this paper, we propose a new flexible framework for drawing graphs in three (more exactly “2 12 ”) dimensions, consistent with the guidelines of Ware. The new framework uses a divide and conquer approach. More specifically, we divide the graph into a set of subgraphs, and then draws each subgraph in a plane (bounded planar region) using well-established 2D drawing algorithms. Finally, a 2 12 D drawing of the whole graph is constructed by combining the 2D drawings, satisfying chosen optimisation criteria. Specific algorithms are instantiations of the framework. These require solutions to optimisation problems. A simple example of a drawing drawn with the framework is illustrated in Figure 1. Our framework generalises some of existing methods. For example, PolyPlane methods draw trees in 2 21 [23] using a 2D plane for each subtree. Another method is to use two and a half dimensional methods to visualise (related) networks in parallel planes [2, 4, 7, 15, 29]. PolyPlane methods can be effective in reducing visual complexity and occlusion, and easing navigation. For example, see Figures 2 and 3. The drawing in Figure 2 clearly shows the problem of occlusion and a great deal of 3D clutter. It is very difficult to see the inside of the drawing in order to see more details of the tree, say the center of the tree. However, the drawing in Figure 3, a tree drawn with the MultiPlane framework, clearly shows the inside of the tree structure, thus making it easier to identify the center of the tree. Further, while rotating the drawing from Figure 3 to Figure 4, some of the planes can be displayed as lines; this
Figure 1: A drawing drawn with the MultiPlane framework.
Figure 2: nodes.
Example of occlusion: a tree with 483
both reduce visual complexity and occlusion and allows the user to concentrate on their plane of interest. Preliminary results suggest that the MultiPlane framework can be useful for visual analysis and insight into large and complex networks such as hierarchical graphs and clustered graphs arising in social network and biological network domains. For details, see [2] for scale-free networks, [21, 22] for directed (or hierarchical) graphs, [19] for clustered graphs, [3] for evolving email networks, and [11] for the visual comparison of network centralities. These methods are implemented in GEOMI, a visual analysis tool for large and complex networks [1]. This paper is organized as follows: the framework is described in Section 2. An algorithm for planar graphs is presented in Section 3 and Section 4 presents algorithms for general graphs. Section 5 concludes.
2.
THE MULTIPLANE FRAMEWORK
In this section, we describe our new framework for drawing graphs in 2 12 dimensions. In particular, we use graph theoretic approaches and network analysis methods to reduce the scalability and complexity of the large and complex
Figure 3: A tree with 8613 nodes drawn with PolyPlane method using 6 subplanes.
good partitioning can be a classical optimisation problem; for example, finding triconnected components, finding minimum cuts, or a balanced partitioning. In most cases, such problems are NP-hard. However, linear time heuristics are available [5, 17]. For Step 2, one can choose a preferred 2D graph drawing algorithm based on the application domain [12, 24]. Step 3 involves some criteria; these can vary from one instance of the framework to another. As design guidelines for multiplane algorithms, some general criteria apply. For example, the number of planes used should be small; otherwise, the visualisation loses the 2 12 D attitude. Also, the planes should avoid intersection as far as possible; the angle at which two planes intersect should be large. Further, each multiplane algorithm should attempt to optimise some criteria. Of course, intra-plane edge crossings can be minimised using one of well established 2D graph drawing algorithms [12, 24]. Further, we need to consider a new problem of inter-plane crossing minimisation, that is, where at least one crossing edge has endpoints in two different planes. Specific instances of the algorithm have specific inter-plane crossing minimisation problems. We can also consider other optimisation criteria such as minimising the total inter-plane edge length, or minimising the number of linked cycles in the drawing. The time complexity of a multiplane algorithm depends on the time complexity of the method chosen at each step. For scalability reasons, we usually choose a fast heuristic, say a linear time algorithm, in each step. To design efficient algorithms for each step, we consider planar graphs in Section 3 and general graphs in Section 4.
3. Figure 4: Drawing after the rotation.
network. The framework uses planes. In general, the planes are bounded planar regions in 3D. An outline of the framework, which will call the MultiPlane method is below. Algorithm Multi-Plane 1. Choose a partitioning of a graph G into a set of subgraphs {Gi : 1 ≤ i ≤ m}. 2. For each i, 1 ≤ i ≤ m, draw Gi in a plane Pi using a 2D drawing algorithm. 3. Arrange each plane Pi in 3D satisfying chosen criteria. 4. Connect edges between the planes. This framework is very flexible, as there are many steps at which an arbitrary choice can be made. Furthermore, there are combinatorial optimisation problems involved in each step. For example, Step 1 involves the well studied problem of finding a good partitioning of a graph. In some cases, the partitioning is given by the application domain; for example, the enities in a software system may be clustered into modules a priori. Otherwise, the problem of finding a
ALGORITHM FOR PLANAR GRAPHS
In this section, we present a linear time algorithm for drawing planar graphs in 2 12 dimensions using the new framework. That is, we partition a planar graph into smaller subgraphs and then draw each subgraph in a plane using a 2D drawing algorithm. Finally, we construct a 2 12 D drawing of the planar graph by combining the 2D drawings. We firstly describe an algorithm for a biconnected case. We use a partition of a biconnected planar graph into triconnected components. For this purpose, we use the SPQRtree [13]. We now briefly review the definition of the SPQRtree. For details, see [13]. The SPQR-tree represents a decomposition of a biconnected planar graph into triconnected components. There are four types of nodes in the SPQR-tree T and each node v in T is associated with a graph called the skeleton of v (skeleton(v)). The node types and their skeletons are: 1. Q-node: The skeleton consists of two vertices which are connected by two multiple edges. 2. S-node: The skeleton is a simple cycle with at least 3 vertices. 3. P -node: The skeleton consists of two vertices connected by at least 3 edges. 4. R-node: The skeleton is a triconnected graph with at least 4 vertices. In fact, we use a slightly different version of the SPQRtree. We use the SPQR-tree without Q nodes. Note that the
SPQR-tree is unique for each biconnected planar graph. Let v be a node in T and u be the parent node of v. The graph skeleton(u) has one common virtual edge with skeleton(v), which is called as a virtual edge of v. We choose a node c in the SPQR-tree T and construct a 3D drawing of skeleton(c) based on the type of the node c. Then we draw the subgraph Gi which corresponds to each virtual edge ei of skeleton(c) on a plane Pi . Finally, we replace each virtual edge ei in the drawing of skeleton(c) with the drawing of Gi . Thus, the algorithm can be described as follows. Algorithm MultiPlane-Planar 1. Construct the SPQR-tree T of G. Figure 6: Example of a S node.
2. Choose a node c of T . 3. Construct a 3D drawing of skeleton(c) based on the type of node c. 4. Draw the subgraph Gi which corresponds to each virtual edge ei of skeleton(c) on a plane Pi using a 2D drawing algorithm. 5. Replace each virtual edge ei in the drawing of skeleton(c) with the drawing of Gi . Drawing S-node and P -node in 3D is easy. For R-node, we can use the algorithm in [10]. It is clear that the algorithm can be implemented in linear time, as for each step, there is a linear time algorithm. Figures 5, 6 and 7 show examples of a biconnected planar graph drawn in this way.
Figure 7: Example of a R node.
case based on the first step of the framework, the partitioning step. More specifically, we have the following three cases: two-way partitioning approach, multi-partitioning approach and planarisation approach. We now explain each case in details.
4.1
Figure 5: Example of a P node.
Note that the method using the SPQR-tree decomposition can be further extended for drawing non-planar graphs. For one-connected graphs, one can use a similar approach, however based on the use of the BC (Block-Cutvertex)-tree. Figures 8 shows an example of an one-connected planar graph drawn in this way. We omit the details in this extended abstract.
4.
ALGORITHMS FOR GENERAL GRAPHS
In this section, we cover more general cases. Here, we present algorithms for drawing general graphs in 2 12 dimensions using the new framework. We can further divide this
Two way partitioning approach.
In this section, we describe various methods for dividing a graph into two subgraphs. The choice of division may depends on the applications. Here, we choose a small subgraph and then draw the subgraph in the third dimension. Thus, it has only two planes. Note that the subgraph can have one of the following cases: a vertex, a set of vertices, a path and a small subgraph. Thus, the main algorithm can be described as follows. Algorithm 2-Plane-General 1. Choose a small subgraph G1 from a graph G. 2. Draw the subgraph G1 on a plane P1 using a 2D drawing algorithm. 3. Draw the remaining subgraph G2 = G − G1 on a plane P2 using a 2D drawing algorithm. 4. Arrange planes P1 and P2 in parallel.
a problem of finding the best embedding of the big subgraph in 2D, so that once we add the edges between the two planes, it results as a nice 2 12 drawing, where the inter-plane edges are not so tangled or minimise the sum of inter-plane edge lengths. This optimisation problem will most likely be hard to optimise; however one can develop a simple method by using a fast force directed algorithm, constraining two planes. See Figure 11.
Figure 8: Example of one connected planar graph. G
Figure 11: Example of a tree case.
5. Draw edges E3 = E − E1 − E2 between the planes P1 and P2 . First, we consider one vertex case. In the application, one can choose a vertex v with some importance defined by centrality measure in social network analysis [30]. Or simply, one can choose a vertex with the highest degree, as it will reduce the visual complexity of the drawing of the underlying graph in 2D. To construct a drawing, we can draw the graph G − v into a plane and then place v into the third dimension as the barycenter of its neighbor. See Figure 9. v
G
Figure 9: Example of one vertex case.
However, in many applications, there may be a set of important vertices. For constructing a drawing, again we can place each vertex as the barycenter of its neighbor. See Figure 10. v1
v 2
v3
G
Figure 10: Example of a set of vertices.
For the case of a path or small subgraph, we can define
4.2
Multi-partitioning approach.
We now divide the graph G into a set of k > 2 smaller subgraphs. There are many graph partitioning or clustering algorithms available for this purpose [5, 17]. More specifically, at Step 1 of Algorithm Multi-Plane, we can use k −way balanced partitioning with minimum cut to divide the graph into a set of k subgraphs. This is an NPhard problem; however there are many good heuristics and approximation algorithms available. See [5, 17] for details. At Step 3, we have a new problem of arranging each plane in 3D to minimise the number of edge crossings and minimise the sum of inter-plane edge lengths. To solve this problem, we need to consider the structure of the partitioning. More specifically, we can define a supergraph defined by the relation between the set of induced subgraphs from the partitioning. Suppose that we have a set of induced subgraph G1 , G2 , . . . , Gk where Gi = (Vi , Ei ). We can define a supergraph GG such that each Gi is a node vi in GG and if there is an edge between a node in Gi and a node in Gj then there is an edge between vi and vj . Note that we can assign weights to each nodes and edges in GG depending on the size of the subgraph and the number of edges between the subgraphs. Then one simple solution is to use a weighted force directed algorithm. Alternatively, we may use regular polytopes to define the angles and locations of planes as in the PolyPlane model [23]. Further, we can design a series of algorithms based on the structure of GG, where GG is a path, a tree (rooted or free), a cycle, a planar graph and a general graph. If GG is a path (see Figure 12), the solution is to arrange the graphs Gi in parallel planes. Then the problem can be reduced to finding the best embedding of two graphs in the adjacent planes to minimise the number of edge crossings between two adjacent planes. A simple solution is to use a spring algorithm layer by layer so that a vertex in the upper plane is located on the barycenter of the neighbors in the lower plane using similar methods in [2, 4]. If GG is a cycle, it is easy to arrange planes as in Figure 13. If GG is a tree (rooted or free tree; see Figure 14), then we
v36
G1
v1
G36
v35
v25
G2
v2
G25
G24
v24
v1
G3
G1
v22
G4
v4
G34
v34
G 21
v21
v3
G35
v31
G31
v32
G22
G23
v23
G32
G33
v33
Figure 14: Example of a tree. Figure 12: Example of a path.
G4
v 4
v1
G1
v3
G3
vide a graph G into two parts, maximal (or maximum) planar subgraph GP and a set of edges E 0 = E − EP . Although the problem of computing a maximum planar subgraph is NP-hard, there are many good heuristics and approximation algorithms available; see [25]. Then we draw GP on a plane P using a 2D drawing algorithm for planar graphs [12, 24]. Finally, we add each remaining edge using a curve in three dimensions. Each of these curve lies on a plane orthogonal that intersects P . Figure 15 shows an example of the planarisation approach. e1
e2
e3
v2
G2
G
Figure 13: Example of a cycle. Figure 15: Example of planarisation approach.
can use a weighted 3D tree drawing algorithm to determine the arrangement of the planes. Then we can replace each vertex in the tree with a drawing drawn in a 2D plane. For a solution to this problem with clustered graphs, see [19]. If GG is a planar graph, then we can use a 2D planar graph drawing algorithm to produce a 2D drawing of GG. Then we lift the drawing up into 3D to decide the z-coordinate of each planes. The transformation is simple: just lift up the 2D drawing into 3D, however the flat 2D drawing in 3D should be expanded so that we can replace each vertex with a drawing drawn in a 2D plane. If GG is not planar, then we create a 2D drawing using a maximal planar subgraph approach. We compute and draw a maximal planar subgraph using the methods for planar graphs, and then re-insert edges nicely in 3D. This leads to a new problem of how to add edges or curves nicely in the 3D drawing. Alternatively, we can use the SPQR-tree decomposition and for each component, we can apply either the small division in the previous section or planarisation approach in the next section.
4.3
Planarisation Approach.
Here we describe a method using a maximal (or maximum) planar subgraph approach. More specifically, we di-
Alternatively, one can use edge centrality measures from social network analysis [30] to decide important edges, and then draw the edges as a curve in 3D.
5.
CONCLUSION
A new flexible framework for drawing graphs in 2 12 dimensions using planes is presented. Preliminary results suggest that the framework can be useful in the social network and biological network domains. For details, see [2] for scale-free networks, [21, 22] for directed (or hierarchical) graphs, [19] for clustered graphs, [3] for evolving email networks, and [11] for the visual comparison of network centralities. These are implemented in GEOMI, a visual analysis tool for large and complex networks [1]. For example, Figures 16 and 17 show visualisation of clustered graphs with the tree structure, produced by the method using weighted tree drawing algorithms in [19]. Figure 18 shows visualisation of ten related metabolic pathways from KEGG database, produced by the method for general clustered graphs in [19]. The drawing clearly shows visual separation of individual pathways and the relationship between related pathways.
Figure 16: A clustered graph with hierarchical tree structure.
Figure 18: A general clustered graph drawn in 2.5D.
Figure 17: A clustered graph with non-hierarchical tree structure. Figure 19: A directed graph drawn in 2.5D.
Figure 19 shows another example of a 2.5D visualisation of a directed graph, arising in software engineering domain (from the ROME graph drawing data set), produced by the hierarchical layout method for directed graphs in [21, 22]. Figure 20 shows 2.5D visualisation of an email network; this is an evolving network arising in the social network domain. This was produced by the method in [3] for the path case in Multi-partitioning approach. Figure 21 shows visual comparison of different network centralities of the same network, produced by the method for in [11]. Current work involves designing a number of multiplane algorithms based on various graph models, various combinatorial optimisation criteria and various application domains. We aim to carry out formal evaluation of the framework via specific multiplane algorithms in specific domains.
6.
REFERENCES
[1] A. Ahmed, T. Dwyer, M. Forster, X. Fu, J. Ho, S. Hong, D. Kosch¨ utzki, C. Murray, N. Nikolov, A. Tarassov, R. Taib and K. Xu, GEOMI: GEometry for Maximum Insight, Proceedings of Graph Drawing 2005, to appear.
[2] A. Ahmed, T. Dwyer, S. Hong, C. Murray, L. Song and Y. Wu, Visualisation and Analysis of Large and Complex Scale-free Networks, Proceedings of EuroVis 2005. [3] X. Fu, S. Hong, R. Shen, Y. Wu and K. Xu, Visualisation and Analysis of Small World Email Networks, submitted to EuroVis 2006. [4] M. Baur, U. Brandes, M. Gaertler and D. Wagner, Drawing the AS Graph in 2.5 Dimensions, Proceeding of Graph Drawing 2004, Lecture Notes in Computer Science 3383, pp. 43-48, 2004. [5] C. J. Alpert and A. B. Kahng, Recent Developments in Netlist Partitioning: A Survey, Integration: the VLSI Journal, 19(1-2), pp. 1-81, 1995. [6] T. Biedl, T. Thiele and D. R. Wood, Three-Dimensional Orthogonal Graph Drawing with Optimal Volume, Graph Drawing, Proceedings of Graph Drawing 2000, Lecture Notes in Computer Science 1984, pp. 284-295, 2001. [7] U. Brandes, T. Dwyer and F. Schreiber, Visualizing Related Metabolic Pathways in Two and a Half Dimensions, Proceedings of Graph Drawing 2003, pp.
Figure 20: An evolving network drawn in 2.5D.
Figure 21: Integration of graph layout with network analysis.
111-122, 2003. [8] J. Cai, X. Han, and R. E. Tarjan, An O(mlogn)-Time Algorithm for the Maximal Planar Subgraph problem, SIAM J. Comput., 22 (6), pp. 1142-1162, 1993. [9] R. Cohen, P. Eades, T. Lin and F. Ruskey, Three Dimensional Graph Drawing, Algorithmica, 17 (2), pp. 199-208, 1996. [10] G. Das and M. T. Goodrich, On the Complexity of Optimization Problems for 3-Dimensional Convex Polyhedra and Decision Trees, Proceedings of Workshop on Algorithms and Data Structures (WADS) 2005, pp. 74-85, 1995. utzki, F. Schreiber and [11] T. Dwyer, S. Hong, D. Kosch¨ K. Xu, Visual Comparison of Network Centralities, Proceedings of APVIS 2006, to appear. [12] G. Di Battista, P. Eades, R. Tamassia and I. G. Tollis, Graph Drawing: Algorithms for the Visualization of Graphs, Prentice-Hall, 1998.
[13] G. Di Battista and R. Tamassia, On-Line Planarity Testing, SIAM Journal on Computing 25(5), pp. 956-997, 1996. [14] V. Dujmovi´c, P. Morin and D. R. Wood, Path-Width and Three-Dimensional Straight-Line Grid Drawing of Graphs, Graph Drawing, Proceedings of Graph Drawing 2002, Lecture Notes in Computer Science 2528, pp. 42-53, 2002. [15] T. Dwyer, Two-and-a-half Dimensional Visualisation of Relational Networks, PhD Thesis, The University of Sydney, 2004. [16] P. Eades, A. Symvonis and S. Whitesides, Three Dimensional Orthogonal Graph Drawing Algorithms, Discrete Applied Mathematics, 103, pp. 55-87, 2000. [17] G. Even, J. Naor, S. Rao and B. Schieber, Fast Approximate Graph Partitioning Algorithms, SIAM Journal on Computing, Vol. 28, No. 6, pp. 2187-2214, 1999. [18] M. R. Garey and D. S. Johnson, Computers and Intractability: A Guide to the Theory of NP Completeness, Freeman, 1979. [19] J. Ho and S. Hong, Drawings Clustered Graphs in Three Dimensions, Proceedings of Graph Drawing 2005, to appear. [20] S. Hong, Drawing Graphs Symmetrically in Three Dimensions, Graph Drawing, Proceedings of Graph Drawing 2001, Lecture Notes in Computer Science 2265, pp. 189-204, 2002. [21] S. Hong and N. Nikolov, Layered Drawings of Directed Graphs in Three Dimensions, Proceedings of APVIS 2005: Asia Pacific Symposium on Information Visualisation, 2005, CPRIT 45, pp. 69-74, 2005. [22] S. Hong and N. Nikolov, Hierarchical Layout of Directed Graphs in Three Dimensions, Proceedings of Graph Drawing 2005, to appear. [23] S. Hong and T. Murtagh, Visualization of Large and Complex Networks Using PolyPlane, Proceedings of Graph Drawing 2004, Lecture Notes in Computer Science 3383, pp. 471-482, 2004. [24] M. Kaufmann and D. Wagner, (ed), Drawing Graphs: Methods and Models, Lecture Notes in Computer Science Tutorial 2025, Springer Verlag, 2001. [25] A. Liebers, Planarizing Graphs A Survey and Annotated Bibliography, Journal of Graph Algorithms and Applications, 2001. [26] J. Pach, T. Thiele and G. Toth, Three-dimensional Grid Drawings of Graphs, Graph Drawing, Proceedings of Graph Drawing 1997, Lecture Notes in Computer Science 1353, pp. 47-51, 1998. [27] C. Ware and G. Franck, Viewing a Graph in a Virtual Reality Display is Three Times as Good as a 2-D Diagram, IEEE Conference on Visual Languages, pp. 182183, 1994. [28] C. Ware, Information Visualization: Perception for Design, Morgan Kaufman, 2000. [29] C. Ware, Designing with a 2 1/2D Attitude, Information Design Journal 10, 3, pp. 171-182, 2001. [30] S. Wasserman and K. Faust, Social Network Analysis: Methods and Applications, Cambridge University Press, 1994.