Title: Graph Visualization Overview
1Graph Visualization Overview
Eleftherios KoutsofiosJohn MocenigoStephen
NorthClaudio SilvaRuss TruscottBin Wei
- James AbelloTamraparni Dasu Emden
GansnerShankar KrishnanDaniel KeimJeff Korn
Information Visualization ResearchATT
InfoLabFlorham Park, NJ, USA
north_at_research.att.com
www.research.att.com/areas/visualization
2ATT Infolab
Challenge
To convert this data into useful information.
3Technical challenges
Data mining pattern matching and scale
- Graphics are essential in data exploration and
understanding. - Possibility to exploit advances in graphics
hardware, large displays - How to visualize massive network and
software-related data? - How to efficiently create, render, and interact
with complex geometric objects?
4Scale in network visualization
- Graph drawing tools 101 - 103
- automated layout of network diagrams
- Swift3d 105 109
- interactive 3d views of end-to-end network data
- Massive graph analysisdisplay beyond
- Stream-based statistical analysis
- External data structures
5Graph layout
- Graphs are ubiquitous models.
- Networks, protocols, schemas, web, software
- Effective visualization techniques match tasks,
perception and algorithms.
symmetric
hierarchical
orthogonal
force-directed
6Hierarchical drawing finite state machine
(protocol)
Layout is made by a series of optimizations. Geome
tric and topological objectives such as edge
length and crossings are optimized
Gansner, North, Vo, after Sugiyama
7Display of a distributed program using clusters
data collection and rendering is fully automatic
8Graph layout as a web service
- Flow-through model from metadata, to network data
collection, to display generation.
9Dynamic layout
- Static layout is good, but what if graph changes?
- Goal is to combine stability and readability.
- We implemented a server for on-line diagrams.
- Arbitrary edits are allowed between refreshes.
- Implemented on a C template library
- -supports reusable algorithm libraries
- -typesafe, efficient, modular
- DEMO incremental hierarchical layout
10B. Force-directed layout
Dependencies between modification requests in a
large software system
Basic idea rediscovered often
Aesthetics distance, dispersion
11Some layouts are too cluttered to read.
3d may help, but not much usually
12Improved force-directed layout
Node-node overlaps are removed by a heuristic
based on Voronoi maps. Node-edge overlaps are
avoided by routing edges as curves. Unwanted
edge-edge intersections are still possible.
13ECLIPSE visualization service
Modified force models
Gansner, Mocenigo
14Eclipse IP service visualization
- Dynamic graphs of software feature boxes (DFC
Zave,Jackson) - e.g. call forwarding, call waiting, instant
messaging - Incremental force directed layout with tuning
(DEMO) - - Implemented on a Java graph foundation library
15PubGene a biological database visualization
service
Norwegian University of Science and
Technology www.pubgene.org
16Traceroute mapping Simon Byers, David Dobkin,
Stephen North
Collect data from worldwide LookingGlass
servers. Graph tools enhanced for readability,
domain semantics and scale. Hoped-for
applications in internet engineering, competetive
analysis.
17Trends in force-directed layout
- Naïve O(V2) methods dont scale
- Use geometric and graph-cluster hierarchy
- Modified Barnes-Hut algorithm (Quigley and Eades)
- 100,000 nodes in 13 secs. On a 500 MHz Pentium
- Multiscale algorithm (Harel and Koren)
- virtual models can get caught in local minima
- drawing by n-d ? 2-d projection (Goodrich et al)
18C. Planar/orthogonal layout
Images from Tom Sawyer Software and the Kandinsky
project (Michael Kaufmann, U. Tuebingen)
Aesthetics regularity, artifact avoidance
(bends, crossings)
19Graph stream filters - colorize
A few nodes are assigned initial colors
(manually). The other nodes are then painted by
hierarchical flows.
20 Composing graph filters
gpr - generic graph stream processor colorize
gpr n -N -t layout
21gpr a generic graph processorEmden Gansner,
Stephen North
First gpr pass gets nodes of high degree gpr -i
'Ndegree 10' yahoo.dot Second pass
merges multiedges BEG_G graph_t g if
(isDirect(G)) g graph (G.name, "SD")
else g graph (G.name, "SU")E
node_t h clone(g,.head) node_t t
clone(g,.tail) edge_t e edge(t,h,"")
e.weight e.weight 1END_G O g
22Why does graph layout work?
- Graphs are excellent models for many real-world
applications. - Layout can achieve basic visualization goals
- control eye motion (distance, direction)
- use data pixels efficiently (aspect ratio)
- avoid distractions (crossings, overlaps)
- reveal regularity (symmetry)