Visual Computing

University of Konstanz
IEEE Transactions on Visualization and Computer Graphics

Structure-aware Fisheye Views for Efficient Large Graph Exploration

Y. Wang, Y. Wang, H. Zhang, Y. Sun, C. Fu, M. Sedlmair, B. Chen, O. Deussen
Teaser of Structure-aware Fisheye Views for Efficient Large Graph Exploration

Magnifying a node-link diagram (a) with 11 clusters around a user-specified location (indicated by the cursor) using different fisheye lenses: (b) graphical fisheye; (c) hyperbolic fisheye; and (d) our structure-aware fisheye, which aims to maintain the shapes of almost all clusters and to minimize their distortions, such as in (b,c).


Paper (.pdf, 15.0 MB)


Traditional fisheye views for exploring large graphs introduce substantial distortions that often lead to a decreased readability of paths and other interesting structures. To overcome these problems, we propose a framework for structure-aware fisheye views. Using edge orientations as constraints for graph layout optimization allows us not only to reduce spatial and temporal distortions during fisheye zooms, but also to improve the readability of the graph structure. Furthermore, the framework enables us to optimize fisheye lenses towards specific tasks and design a family of new lenses: polyfocal, cluster, and path lenses. A GPU implementation lets us process large graphs with up to 15,000 nodes at interactive rates. A comprehensive evaluation, a user study, and two case studies demonstrate that our structure-aware fisheye views improve layout readability and user performance.


  author     = {Y. Wang and Y. Wang and H. Zhang and Y. Sun and C. Fu and M. Sedlmair and B. Chen and O. Deussen},
  doi        = {10.1109/TVCG.2018.2864911},
  journal    = {IEEE Transactions on Visualization and Computer Graphics},
  month      = {jan},
  number     = {1},
  pages      = {566--575},
  publisher  = {Institute of Electrical and Electronics Engineers (IEEE)},
  title      = {Structure-aware Fisheye Views for Efficient Large Graph Exploration},
  volume     = {25},
  year       = {2019},
  url        = {},