Supporting the Design of Custom Static Node-Link Graph ...
-
Upload
khangminh22 -
Category
Documents
-
view
3 -
download
0
Transcript of Supporting the Design of Custom Static Node-Link Graph ...
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SULINSTITUTO DE INFORMÁTICA
PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO
ANDRE SUSLIK SPRITZER
Supporting the Design of Custom StaticNode-Link Graph Visualizations
Thesis presented in partial fulfillmentof the requirements for the degree ofDoctor of Computer Science
Advisor: Prof. Dr. Carla Maria Dal Sasso FreitasCoadvisor: Prof. Dr. Jean-Daniel Fekete
Porto AlegreAugust 2015
CIP – CATALOGING-IN-PUBLICATION
Spritzer, Andre Suslik
Supporting the Design of Custom Static Node-Link GraphVisualizations / Andre Suslik Spritzer. – Porto Alegre:PPGC da UFRGS, 2015.
120 f.: il.
Thesis (Ph.D.) – Universidade Federal do Rio Grande do Sul.Programa de Pós-Graduação em Computação, Porto Alegre, BR–RS, 2015. Advisor: Carla Maria Dal Sasso Freitas; Coadvisor:Jean-Daniel Fekete.
1. Graph visualization. 2. Node-link diagrams. 3. Interactivelayout manipulation. 4. Infographics. 5. Graphic design. 6. Staticvisualizations. I. Freitas, Carla Maria Dal Sasso. II. Fekete, Jean-Daniel. III. Título.
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SULReitor: Prof. Carlos Alexandre NettoVice-Reitor: Prof. Rui Vicente OppermannPró-Reitor de Pós-Graduação: Prof. Vladimir Pinheiro do NascimentoDiretor do Instituto de Informática: Prof. Luis da Cunha LambCoordenador do PPGC: Prof. Luigi CarroBibliotecária-chefe do Instituto de Informática: Beatriz Regina Bastos Haro
ACKNOWLEDGMENTS
The first person I would like to thank is my longtime advisor, Prof. Carla Freitas. She has
been along for the ride ever since my time as an undergrad and has opened many doors for me.
It was through her that I ended up in the world of visualization and it was often with her help
that I navigated the sometimes-murky waters of the seas of academia. I believe we have made a
great team in the 11 years we have worked together and I hope we will continue to collaborate
in the future.
I would also like to thank my coadvisor, Prof. Jean-Daniel Fekete, who welcomed me with
open arms to Aviz, his research team in Paris. Jean-Daniel is as brilliant as he is approachable,
his input and feedback being some of the key ingredients that helped shape and define this
work. My time working with him and the Aviz team was an amazing experience, giving me the
opportunity of meeting and collaborating with many talented, hard-working people.
Besides my advisors, I would like to thank the members of my jury, professors Hugo
Alexandre Dantas do Nascimento, Maria Cristina Ferreira de Oliveira, and Marcelo Soares
Pimenta. Their feedback was very valuable, making this work stronger and more complete.
Thanks must be given as well to all the people with whom I’ve collaborated during the
course of my PhD: Benjamin Bach, Jeremy Boy, Pierre Dragicevich, Evelyne Lutton, Fabio
Petrillo, Lucas Seadi, and Alberto Tonda. It was a pleasure to work with them and our collabo-
rations are definitely reflected in the work that is presented in this thesis.
I also want to thank everyone from the Brazilian UFRGS Computer Graphics, Interaction,
and Visualization group and the French Aviz and InSitu teams. Even if they haven’t all been
directly involved with this work, they have all contributed to it by means of the friendly and
productive work environment they created, as well as the many discussions, experiments, coffee
breaks, lunches, dinners, meetings, train rides, conferences, and other activities, both curricular
and extra-curricular, that we have experienced together. It is impossible to name everyone
here (literally, as the list would be positively huge and I don’t want to run the risk of leaving
anyone out), but it should be said that I have learned I lot with these people and that, more than
colleagues, many of them have become great friends.
Last, but by no means least, I would like to thank my friends and family for their support
and understanding throughout all these years. They helped me stay connected to the outside
world throughout all these years while showing a great deal of patience for all the times I was
unavailable due to pressing deadlines and other work-related reasons. This work wouldn’t have
been possible without them.
ABSTRACT
Graph visualizations for communication appear in a variety of contexts that range from scien-
tific/academic to journalistic and even artistic. Unlike graph visualizations for exploration and
analysis, these images are used to tell a story that is already known rather than to look for a
story within the data. Although graph drawing and diagram editing software can be used to
produce them, visualizations made this way do not always meet the visual requirements im-
posed by their context of use. Graphics authoring software can be used to make the necessary
improvements, but not all modifications are possible and the process of editing these images
may be very time-consuming and labor-intensive.
In this work, we present an investigation of static node-link visualizations for communication
and how to better support their creation. We began with a deconstruction of these images,
breaking them down into their basic elements and analyzing how they are created. From this,
we derived a set of requirements that tools aimed at supporting their creation should meet. To
verify if taking all of this into account would improve the workflow and bring more flexibility
and power to the users, we created our own prototype, which we named GraphCoiffure.
With a special emphasis on helping users on creating visualizations for publication, GraphCoif-
fure was designed as a standalone application that would serve as an intermediary step between
graph drawing and editing software and graphics editors. It combines interactive graph layout
manipulation tools with CSS-like styling possibilities to let users create and edit static node-link
visualizations for communication. We illustrate the use of GraphCoiffure with four use-case
scenarios: the adaptation of a visualization’s layout to make it work on a given page, the repro-
duction of a visualization’s style and its application on another graph, and the creation of two
visualizations from scratch. To obtain feedback on GraphCoiffure, we conducted an informal
evaluation by interviewing three potential expert users, who found that it could be useful for
their work.
Keywords: Graph visualization. node-link diagrams. interactive layout manipulation. info-
graphics. graphic design. static visualizations.
Permitindo o design de visualizações nodo-aresta de grafos estáticas personalizadas
RESUMO
Visualizações de grafos para comunicação aparecem numa variedade de contextos que vão do
acadêmico-científico até o jornalístico e até mesmo artístico. Diferente de visualizações de
grafos para exploração e análise de dados, essas imagens são usadas para “contar uma história”
que já se conhece ao invés da “procura de uma nova história” nos dados. Apesar de ser possível
usar software para desenho de grafos e edição de diagramas para produzí-las, visualizações
feitas dessa forma nem sempre preenchem os requisitos visuais impostos pelos seus contextos
de uso. Programas de edição de imagens podem ser usados para fazer as melhorias necessárias,
mas nem todas as modificações são possíveis e o processo de editar essas imagens pode exigir
muito tempo e esforço.
Neste trabalho, apresentamos uma investigação de visualizações nodo-aresta estáticas para co-
municação e de como facilitar sua criação. A partir de uma desconstrução dessas imagens,
identificando seus elementos essenciais, e analisando como são criadas, derivamos um conjunto
de requisitos que ferramentas para a criação dessas visualizações devem preencher. Para veri-
ficar o efeito da metodologia na melhora do fluxo de trabalho de designers, com mais poder e
flexibilidade, foi concebido e implementado um protótipo chamado GraphCoiffure.
Com um foco especial em auxiliar usuários na criação de visualizações para publicação, Graph-
Coiffure foi projetado como uma aplicação standalone que seria usada como um passo inter-
mediário entre programas de desenho e edição de grafos e editores gráficos. Ele combina fer-
ramentas para manipulação interativa de layouts com estilização similar a CSS para permitir
que usuários criem e editem visualizações nodo-aresta estáticas. Ilustramos o funcionamento
de GraphCoiffure com quatro casos de uso: a adaptação do layout de uma visualização para
fazê-la funcionar em uma dada página, a reprodução do estilo de uma visualização e sua aplica-
ção em outro grafo, e a criação integral de duas novas visualizações. Para obter feedback sobre
GraphCoiffure, conduzimos uma avaliação informal através de entrevistas com três potenciais
usuários, que disseram achar que GraphCoiffure beneficiaria seu trabalho.
Palavras-chave: visualização de grafos, diagramas nodo-aresta, manipulação interativa de
layouts, infográficos, design gráfico, visualizações estáticas.
LIST OF FIGURES
Figure 1.1 A typical node-link diagram, using circles to represent nodes............................... 12Figure 1.2 Hand-made sociogram made by the Stasi (East German secret police) that
shows the social connections of a poet they were spying on. ......................................... 15Figure 1.3 Graph shown by the PA Consulting Group to the US military in a PowerPoint
presentation about the situation in Afghanistan.............................................................. 15Figure 1.4 A sociogram made with Gephi by Nataliya Dmytriyeva for her website for an
online social network analysis course. ............................................................................ 16Figure 1.5 An egocentric sociogram hand-drawn by Ben Discoe in 2003 illustrating his
network of friends on online social network Friendster.................................................. 16Figure 1.6 “Dada Visualization I” by artist Mario Klingemann. ............................................. 17Figure 1.7 A prime example of graph visualization as art, this is one of Mark Lombardi’s
several hand-drawn graphs illustrating crime and conspiracy networks (LOMBARDI;HOBBS; RICHARDS, 2003). Over 20 of these works are included in the collectionof the Museum of Modern Art (MoMA), in New York City. ......................................... 18
Figure 1.8 Huge visualization of biochemical pathways made by pharmaceutical com-pany Roche. It is available online, but a wall chart version can be purchased. .............. 19
Figure 1.9 Infographic by the New York Times depicting an overview of the Euro Crisis,by Bill Marsh. An interactive version also appears on the newspaper’s website. .......... 20
Figure 1.10 Infographic by British newspaper the Guardian depicting UK governmentspending by department in 2011–2012. .......................................................................... 21
Figure 1.11 Infographic made by now-extinct company Loku illustrating the differenttypes of coffee and the different personalities of the people who drink them. ............... 22
Figure 1.12 Decorative poster sold by the company Pop Chart Lab consisting of an info-graphic illustrating the different types of comic book superpowers and some of thecharacters who have them. .............................................................................................. 23
Figure 1.13 Kitchen apron sold by Pop Chart Lab featuring an infographic graph depict-ing the different types of kitchenware............................................................................. 24
Figure 1.14 “Map of Science” poster made in 2006 by Kevin Boyack, Dick Klavans, andW. Bradford Paley. It appeared in many publications, including the 2006 galleryof the scientific journal Nature (MARRIS, 2006) and several magazines. It is alsoavailable as a poster, given away for free at Paley’s Information Esthetics web-site. Paley also features this image on his website, in a section dedicated to hisvisualizations of scientific knowledge. ........................................................................... 25
Figure 1.15 Another poster made by W. Bradford Paley and Dick Klavans. It illustrateshow different nations emphasize different topics of scientific research. ........................ 26
Figure 2.1 Common graph layouts. From left to right: polylines, straight line segments,orthogonal drawing, and grid layout. .............................................................................. 28
Figure 2.2 Sugiyama and Misue’s magnetic-spring layout (1994, 1995). ............................... 30Figure 2.3 Sample layout generated using the Eades spring-embedder technique (1984). ..... 30Figure 2.4 Fruchterman-Reingold layout (1991). .................................................................... 31Figure 2.5 Fruchterman-Reingold layout (1991) of the largest component of the co-authorship
graph of the AVI conference (26 nodes and 78 edges). .................................................. 32Figure 2.6 The elements of a grid. ........................................................................................... 34
Figure 4.1 Visual representation of magnets and their attracted nodes.................................... 42Figure 4.2 Boundary shapes..................................................................................................... 44Figure 4.3 Magnet intersection. ............................................................................................... 45
Figure 4.4 Types of behavior of intersecting nodes. ................................................................ 45Figure 4.5 Magnet hierarchy: a magnet and its child. ............................................................. 46Figure 4.6 Using the MagnetViz tools on a small graph.......................................................... 47Figure 4.7 Using MagnetViz on a larger graph........................................................................ 49Figure 4.8 Transforming the 2009 UFRGS Informatics Institute co-authorship graph to
emphasize the computer graphics group......................................................................... 50
Figure 5.1 Teresa Elms’ visualization of the lexical distance among the languages ofEurope (2008). ................................................................................................................ 53
Figure 5.2 Close-up of two e-diaspora graphs as seen on the print version of Dana Dimi-nescu’s e-Diasporas project (2012b). .............................................................................. 55
Figure 5.3 Two pages of the print version of Dana Diminescu’s e-Diasporas project (2012b).Each page is organized as a grid of e-diaspora graphs.................................................... 56
Figure 6.1 Visualization of the lexical distance among European languages, by TeresaElms (ELMS, 2008) ........................................................................................................ 65
Figure 6.2 Reproducing the lexi-graph with GraphCoiffure.................................................... 66Figure 6.3 Node group deformations of nodes representing Germanic languages. ................. 70Figure 6.4 Using physics-based tools on the lexi-graph .......................................................... 70Figure 6.5 Applying layout algorithms on a node group ......................................................... 71
Figure 7.1 From page template to page layout schema............................................................ 75Figure 7.2 Moving and scaling the graph................................................................................. 75Figure 7.3 Adjusting the layout................................................................................................ 76Figure 7.4 The finished page.................................................................................................... 77Figure 7.5 Page layout schema with a movable element (in blue)........................................... 78Figure 7.6 Layout made using GraphCoiffure groups. ............................................................ 78Figure 7.7 Layout made using node groups and the application of a circular layout algo-
rithm on a subgraph......................................................................................................... 79Figure 7.8 Making the lexi-graph reproduction look like the coffee infographic.................... 80Figure 7.9 In our visualization of the UFRGS 2011 coauthorship network we used this
stylized depiction of a person as the shape of the nodes. This image was in SVGformat. ............................................................................................................................. 81
Figure 7.10 Applying a stylesheet on the 2011 UFRGS coauthorship network. ..................... 82Figure 7.11 Manipulating the UFRGS coauthorship network to make the CG group stand
out.................................................................................................................................... 84Figure 7.12 Finalizing the visualization of the 2011 UFRGS coauthorship network.............. 85Figure 7.13 Our first Rotten Tomatoes infographic. ................................................................ 87Figure 7.14 Our second Rotten Tomatoes infographic. ........................................................... 88Figure 7.15 Examples of real-world visualizations given by the third researcher we in-
terviewed representative of situations where he thought GraphCoiffure would havebeen useful. ..................................................................................................................... 91
Figure A.1 The GraphCoiffure prototype’s graphical user interface. ...................................... 99Figure A.2 Selection panels ..................................................................................................... 99Figure A.3 Stylesheet editor................................................................................................... 100Figure A.4 A sample page layout schema containing two placeholder elements, one fixed
(in red) and one movable (in blue). ............................................................................... 101Figure A.5 A graph and a page layout schema on GraphCoiffure......................................... 101Figure A.6 A graph visualization using GraphCoiffure’s default stylesheet and no layout
modification. ................................................................................................................. 103Figure A.7 The node shape manager...................................................................................... 103
Figure A.8 Using stylesheets and SVG to change node appearance: nodes of our repro-duction of Elms’s graph (2008) are drawn using the “mushroom” image and scaledproportionally to their “speakers” attribute................................................................... 106
Figure A.9 Declarations are added to the “node” rule on the stylesheet to define the ap-pearance of labels on our reproduction of Elms’s graph (2008). .................................. 106
Figure A.10 Node shapes of our reproduction of Elms’s graph (2008) are changed byusing stylesheet declarations that alter the default stroke/pen. ..................................... 110
Figure A.11 The SVG ids of individual elements of node shapes are used to change thelook of the nodes of our reproduction of Elms’s graph (2008) by altering the brush/-fill that is used to paint the upper part of the mushrooms. ............................................ 110
Figure A.12 Adjusting graph size and node spacing by scaling. ........................................... 114Figure A.13 A node group. .................................................................................................... 115Figure A.14 Scaling a node group. ........................................................................................ 115Figure A.15 Node group rotation. .......................................................................................... 116Figure A.16 Application of a force-directed layout on a node group. ................................... 117Figure A.17 An edge group comprising edges ‘Ger’-‘Lat’, ‘Lit’-‘Lat’, ‘Hun’-‘Lat’, and
‘Est’-‘Lat’...................................................................................................................... 117Figure A.18 A repeller being used to create some space between nodes. ............................. 118Figure A.19 A magnet attracting the nodes labeled ‘Dut’, ‘Ger’, ‘Lit’, ‘Sb’, ‘Alb’, ’Rom’,
and ’Grk’. ...................................................................................................................... 119
LIST OF TABLES
Table A.1 Stylesheet declarations concerning node size. ...................................................... 105Table A.2 Stylesheet declarations concerning node label. ..................................................... 108Table A.3 Stylesheet pen declarations. .................................................................................. 111Table A.4 Stylesheet brush declarations. ............................................................................... 112
CONTENTS
1 INTRODUCTION................................................................................................................ 121.1 Motivation......................................................................................................................... 131.2 Objectives and contribution............................................................................................ 141.3 Structure of the text ......................................................................................................... 142 BACKGROUND................................................................................................................... 272.1 Basic Concepts.................................................................................................................. 272.2 Graph Drawing ................................................................................................................ 282.3 Graphic Design: the Grid................................................................................................ 323 RELATED WORK .............................................................................................................. 353.1 Graph editors ................................................................................................................... 353.2 Interactive layout manipulation ..................................................................................... 373.3 Attribute-based graph visualization............................................................................... 384 PREVIOUS WORK: MAGNETVIZ.................................................................................. 414.1 The Technique .................................................................................................................. 424.1.1 The Magnet ..................................................................................................................... 424.1.2 The Boundary Shape....................................................................................................... 444.1.3 Magnet Intersection ........................................................................................................ 444.1.4 Magnet Hierarchy ........................................................................................................... 454.2 The MagnetViz Prototype Application .......................................................................... 464.3 The Evolution of MagnetViz ........................................................................................... 474.4 Examples........................................................................................................................... 484.5 Discussion ......................................................................................................................... 485 NODE-LINK VISUALIZATIONS FOR COMMUNICATION ...................................... 525.1 Elements of static node-link graph visualizations......................................................... 575.2 High-level tasks for the creation of communicative node-link diagrams.................... 596 GRAPHCOIFFURE ............................................................................................................ 616.1 GraphCoiffure’s concept ................................................................................................. 626.2 Workflow using GraphCoiffure...................................................................................... 626.3 Touching up a graph with GraphCoiffure..................................................................... 646.3.1 Using stylesheets to define visual attributes ................................................................... 656.3.2 Annotations ..................................................................................................................... 686.3.3 Manipulating the layout .................................................................................................. 696.3.4 Selection.......................................................................................................................... 696.3.5 Node-group-based manipulation..................................................................................... 696.3.6 Physics-based tools ......................................................................................................... 706.3.7 Page layout schemas ....................................................................................................... 716.4 Implementation ................................................................................................................ 726.5 Limitations........................................................................................................................ 737 EVALUATING GRAPHCOIFFURE ................................................................................. 747.1 Usage scenarios................................................................................................................. 747.1.1 Adapting the lexi-graph for the page .............................................................................. 747.1.2 Reproducing a style......................................................................................................... 767.1.3 Creating a coauthorship visualization............................................................................. 817.1.4 Rotten Tomatoes infographics ........................................................................................ 837.2 User evaluation: interviews with expert users .............................................................. 868 CONCLUSION .................................................................................................................... 92REFERENCES........................................................................................................................ 93
A USING THE GRAPHCOIFFURE PROTOTYPE........................................................... 98A.1 User interface................................................................................................................... 98A.2 Planning for a page layout............................................................................................ 100A.3 Customizing Visual Attributes With Stylesheets........................................................ 102A.3.0.1 Changing the Appearance of Nodes.......................................................................... 104A.3.1 Changing the Appearance of Node Shapes.................................................................. 107A.3.2 Changing the Appearance of Edges ............................................................................. 109A.4 Working with Graph Layouts ...................................................................................... 112A.4.1 Adjusting Graph Size and Node Spacing..................................................................... 113A.4.1.1 Groups....................................................................................................................... 113A.4.2 Physics-based tools ...................................................................................................... 118A.5 Presentation Aids .......................................................................................................... 119A.6 Generating the Output Image...................................................................................... 120A.7 Implementation ............................................................................................................. 120
12
1 INTRODUCTION
A graph is an abstract mathematical structure that is used to represent information consist-
ing of objects (the graph’s nodes) and the relationships between them (its edges). Graphs are
used by researchers from fields as varied as social science, biology, chemistry, urbanism, and
computer science, representing datasets that range from the relationships of students in a class-
room to chemical pathways and computer networks. To analyze and understand these datasets,
researchers count on a variety of graph properties, metrics, techniques, and algorithms.
Visualization also plays an essential role in graph analysis. It can be far easier to understand
the structure of a graph by looking at its visual representation than by reading a purely verbal
description. This has led researchers to devise a multitude of graph visualization techniques
that combine visual representations with interaction schemes to allow for a deeper exploration
and understanding of these datasets (BASTIAN; HEYMANN; JACOMY, 2009; HERMAN et
al., 2000; MCGUFFIN; JURISICA, 2009; SCHMIDT et al., 2010; TAMASSIA, 2014).
The most intuitive (and therefore widespread) visual representation of a graph is the node-
link diagram (Figure 1.1). This diagram is a direct mapping of the graph’s structure to visual
elements: nodes are represented by visual objects, which are connected to one another by lines
representing the edges. The arrangement of nodes in space and the routing of the edges are
known as the graph’s layout. Computing layouts such that the resulting diagram conforms to a
set of aesthetic criteria is a very difficult problem and is the main concern of the field of graph
drawing (BATTISTA et al., 1999; TAMASSIA, 2014).
Figure 1.1: A typical node-link diagram, using circles to represent nodes.
13
1.1 Motivation
Static node-link diagrams are an effective way of communicating information. As seen in
Figures 1.2–1.15, they come in many very distinct styles and appear in media as varied as text-
books, papers, scientific posters, newspapers, and magazines, being often used by researchers
to present their findings, by journalists to illustrate their stories, and by artists to express them-
selves.
These visualizations are of an inherently different nature from those meant for exploration
and analysis. Instead of helping us look for a story within the data, they let us tell a story that we
already know or that we have previously discovered through exploration. A social scientist, for
instance, may use a static node-link diagram depicting a social network (a sociogram, in social
network analysis jargon) to communicate particular points about some of its actors (e.g., show
the similarities or differences in the relationships of two groups of children in a classroom).
Creating static node-link visualizations for communication is not an easy task. To begin
with, the contexts where they appear impose many constraints, ranging from stylistic choices
(i.e., the image’s “look-and-feel”) to medium limitations (e.g., size, color palette, etc.) and
whoever creates them must have a clear understanding of the underlying data and of the message
the diagram should convey. This requires skills that are not necessarily possessed by a single
person.
Currently available approaches for creating custom static node-link diagrams are also a
problem as they tend to be too labor-intensive, time-consuming, or inflexible. For example,
creating a node-link diagram from scratch in a graphics editor can be painstaking and is only
feasible for graphs of very limited size—such software only deal with pixels and/or vectors and
are agnostic to the data. As an alternative, analysis-centric software can be used, but these rarely
allow the necessary flexibility to conform with the aesthetic requirements of communication-
centered contexts. Similarly, graph editors and graph drawing applications can produce nice-
looking visualizations, but they too lack flexibility for visual encoding and layout and are truly
practical only if the visualizations can be used “as is.” A final alternative is to code visual-
izations, but this is impractical, time-consuming, and requires programming skills, which not
everyone has.
14
1.2 Objectives and contribution
To adequately support the creation of custom static node-link diagrams for publication, it
is necessary to approach this problem from the ground up, fully understanding what these im-
ages consist of and the workflow of the people who create them. The goal of this work is
to do precisely that, laying the necessary groundwork for techniques and applications aimed
at supporting the creation of these diagrams, with an emphasis on tools for interactive layout
manipulation. It includes the following contributions:
1. a breakdown of static node-link diagrams into their basic elements from a graphic design
perspective based on a study of representative example visualizations (Chapter 5);
2. an analysis of the workflow of the designers/storytellers who create these visualizations
(Chapter 5);
3. a set of high-level tasks that these users may need to perform in order to create the dia-
grams (Chapter 5);
4. a set of techniques for interactive layout manipulation that take into account the graph and
its associated data (i.e., node and edge attributes), as well as the visualization’s semantics
and context of use (Chapter 6);
5. a stylesheet-based technique for the definition of a node-link diagram’s visual attributes
(Chapter 6);
6. a discussion of how the proposed techniques fit into and enhance the workflow of creators
of node-link visualizations for communication (Chapters 6 and 7).
The proposed techniques were implemented as a proof-of-concept prototype called Graph-
Coiffure (SPRITZER et al., 2015), which is detailed in Chapters 6 and 7 and in the Appendix.
1.3 Structure of the text
In the following chapters we briefly review basic concepts (Chapter 2) and describe the
related work (Chapter 3). Then, we present a technique, MagnetViz, which was designed for
the manipulation of node-link layouts based on queries over graph datasets (Chapter 4). This
technique served as inspiration and laid the groundwork for the design and development of
GraphCoiffure (Chapters 5, 6, and 7). Finally, Chapter 8 presents our conclusions and the
Appendix details specific functionalities of the GraphCoiffure prototype.
15
Figure 1.2: Hand-made sociogram made by the Stasi (East German secret police) that showsthe social connections of a poet they were spying on (http://www.propublica.org/article/how-the-stasi-spied-on-social-networks).
Figure 1.3: Graph shown by the PA Consulting Group to the US military in a PowerPointpresentation about the situation in Afghanistan. The graph was leaked and appeared in manypublications, such as the Daily Mail and the Times.
16
Figure 1.4: A sociogram made with Gephi by Nataliya Dmytriyeva for her website for an onlinesocial network analysis course (http://http://sna433.weebly.com/ ).
Figure 1.5: An egocentric sociogram hand-drawn by Ben Discoe in 2003illustrating his network of friends on online social network Friendster(http://www.washedashore.com/people/friendster/friendster1.html).
17
Figure 1.6: “Dada Visualization I” by artist Mario Klingemann (http://mario-klingemann.tumblr.com/ ). This was one of the pieces the author made in 2009 for theData Art Show at the Pink Hobo Gallery, in Minneapolis. These pieces were a pun on whathe described as “the new craze for data visualization.” Instead of using Photoshop or otherimaging tools, he crafted these images by making up his own data to ensure that his “generativealgorithms” would give him his desired visual results.
18
Figure 1.7: A prime example of graph visualization as art, this is one of Mark Lombardi’sseveral hand-drawn graphs illustrating crime and conspiracy networks (LOMBARDI; HOBBS;RICHARDS, 2003). Over 20 of these works are included in the collection of the Museum ofModern Art (MoMA), in New York City.
19
Figure 1.8: Huge visualization of biochemical pathways made by pharmaceutical com-pany Roche. It is available online, but a wall chart version can be purchased(http://web.expasy.org/pathways/ ).
20
Figure 1.9: Infographic by the New York Times depicting an overview of theEuro Crisis, by Bill Marsh. An interactive version also appears on the newspa-per’s website (http://www.nytimes.com/interactive/2011/10/23/sunday-review/an-overview-of-the-euro-crisis.html).
21
Total sp
end
ing, 20
11-12
£69
4.8
9bn
-1.58% change after
inflation
on 20
10-11
Security an
d intelligence services
£1.99
bn +0
.6%
Crow
n Prosecu
tion Service £58
9m
-6.1%
Nu
clear D
ecomm
issioning
Au
thority
Green
Deal £20
6m
-57.6%
En
ergy legacy £199
m
+7.2%
Clim
ate change £14
8m
-50
.1%
Adm
in £14
4m
+19.3%
Ren
ewable H
eat Incentive £11m
C
oal Au
thority £31m
-60.8%
Secure en
ergy £5m-97%
Com
mittee on
Clim
ate Ch
ange £4m
-16.5%
Civil N
uclear Police A
uth
ority £2m-12.5%
Dep
artmen
t of En
ergy and
Clim
ate Ch
ange
£5.53bn-22.9%
£6.12bn
-26.3%
Dep
artmen
t for Intern
ational D
evelopm
ent
Cou
ntryprogram
mes
Africa
£1.84bn
+4.3%
Eu
rope£1.36bn
+2.2%
Internation
al finance
£1.8bn
-9.3%
Internation
al relations
£1.67bn +5.2%
World B
ank
£953m
-4.9%
Global fun
ds£39
6m-32.4%
Debt relief £9
1m -28.3%
Policy & research
£826m
-4.4%
UN
& C
omm
onwealth
£307m
+22.4%
£7.87bn
+1.8%
£3.42bn
+5%
Region
al development
banks £267m
+35.1%
Asia, C
aribbean &
Overseas T
erritories £76
5m
Western
Asia &
Stabilisation
division £414m
Security &
hu
manitarian
& M
iddle E
ast division £39
9m
UK
Statistics Au
thority
£325m +4.7%
Hou
se of Com
mon
s [11] £230
m +37.3%
Nation
al Savings and Investm
ents £174m
+4.4%
Debt in
terest [1]
£48
.20bn
+8.7%
Health
Protection
Agen
cy £161m
-11%
Indepen
dent Parliamentary
Standards A
uth
ority[8
] £146
m +10
.5%
UK
Trade &
Investment
(UK
TI) £8
2m -6.2%
Hou
se of Lords £10
9m
+38.0%
Nation
al Au
dit Offi
ce £70
m -1.5%
Food Standards A
gency
£89
m +21%
Offi
ce of Fair T
rading (OFT
) £62m
+3.8%
Prisons &
probation (N
ational
Off
ender M
anagem
ent Service)
Crim
inal legal aid £1.1bn
-4.8%
HM
Cou
rts & tribu
nals service
£1.12bn -23.5%
Civil legal aid £1.0
2bn +1.5%
Policy, corporate services &A
ssociated offices
£1.06bn
+88.6%
Youth
Justice B
oard £378
m -18.9%
Corporate Services &
Associated O
ffices
£249m
-19.3%
Crim
inal In
juries C
ompensation
Auth
ority£20
2m -45.6%
High
er judicial salaries £142m
-3.2%
Legal services comm
ission adm
in£9
7m -17%
Central fu
nds £10
1m +25.9%
Parole Board
£10m
-28.1%
Min
istry of Justice
£8.55bn
-10.7%
Offi
ce for Legal Com
plaints £1m +99.3%
Inform
ation C
omm
issioner’s O
ffice
£5m -25.6%
Judicial A
ppointments C
omm
ission £5m
-21.1%
Crim
inal C
ases Review
Com
mission
£6m
-12.7%
£3.58bn
-15.6%
Ch
ild trust fu
nd
£106m
-54.2%Person
altax credits
Ch
ildben
efit£12.22 bn
-0.9%
HM
Reven
ue
& C
ustom
s [8]
£46
.59bn
-0.6%
D
evolved sp
end
ing for N
orthern
Ireland
£10.33bn
-2.2%Ju
stice £1.21bn -3.2%
Em
ployment an
d learning £78
7m -3.7%
Social development £50
5m -5.3%
Region
al development £50
8m
-4%A
gricultu
re & ru
ral development
£220m
-4.4%
Fin
ance an
d personn
el £189
m +0
.7%
Cu
lture, arts an
d leisure £112m
-3.4%
Environ
ment £127m
-4.3%
Offi
ce of the F
irst Min
ister & D
eputy F
irst Min
ister£79
m -4.3%
North
ern Irelan
d Assem
bly £47m -6.2%
Enterprise, trade an
d investment £20
7m +1.4
%
Health, social services
& Pu
blic safety £4
.38bn
-0.5%
£1.89
bn-3.4%
Edu
cation
Fin
ance &
sustain
able grow
th
Edu
cation &
lifelong learn
ing
Infrastru
cture &
capital investm
ent £2.13bnJu
stice £1.26bn
-1.6%
Ru
ral affairs &
the environ
ment £54
1m -16.0
%
Offi
ce of the F
irst Min
ister £255m -15.5%
Cu
lture &
external aff
airs £246
m
Crow
n offi
ce and procu
rator fiscal £108
m -11.3%
Adm
in £236
m -12.1%
Scottish parliam
ent and A
udit Scotlan
d £96
m -18.0
%
£8m
£33.52bn-5.2%
Devolved
sp
end
ing
for Scotland
Health
&w
ellbeing
£11.47bn-5.8%
LocalG
overnm
ent
£11.23bn-7.7%
£3.7bn-38.6%
£2.6bn
-10
.8%
Social justice &
Local governm
ent
Environ
ment, su
stainability &
housing £6
69m -17.7%
Ru
ral affairs £137m
-0.2%
Heritage £159
m-15.2%
Health
& social
services
Ch
ildren, edu
cation,
lifelong learning &
skills£2.1bn
-6%
Econ
omy &
transport £883m
-18%
£15bn-7.6%
Devolved
spen
din
g for W
ales
£6.27bn
-7.4%
£4.39
bn-4.1%
Central services &
admin £332m
-14.3%
Public services
& perform
ance
£64m +4.5%
Dep
artmen
t for Work
& Pen
sions [4]
£166
.98
bn+1.9%
Ben
efit sp
end
ing
in G
reat Britain
£159bn+1.1%
State pension
s
Incom
esu
pport
Incapacity
benefit
Cou
ncil
tax benefit
Jobseeker'sallow
ance
Atten
dance
allowan
ce
Statutory sick &
matern
ity pay
£16.9
4bn
+5.2%
£12.57bn+3.3 %
£8.11bn
-4.8%
£6.9
2bn-13.2%
R
entrebates
£5.45bn
+0.8%
£5.34bn
-0.3%
£4.9
4bn
-13.3%
£4.9
1bn+7.6%
£4.8
3bn-1.7%
£3.58bn
+55.9%
£74.22bn
+3.7%
Disability
living allowan
ce
Hou
singben
efit
Social Fun
dexpen
diture
Carers
allowan
ce
£2.55bn+1.2%
£2.37bn-39.2%
£1.73bn+7.7%
Fin
ancial
assistance
schem
e£1.24bn
184.6%
Pension
credit & m
inimu
min
come gu
arantee
Em
ployment &
su
pport allowan
ce
UK
Border A
gency £1.5bn
-21.7%
Police superan
uation
£1.01bn
+37%
Offi
ce for security &
cou
nter-terrorism£9
70m
-1.3%
Non
-departmental pu
blic bodies £930
m -8.2%
Central H
ome O
ffice £30
0m
+46.5%
Area-based grants £67m
-7.8%
Eu
ropean solidarity m
echan
ism £1m
Govern
ment equ
alities office £9
m-26.7%
Nation
al fraud au
thority £6
m +46.5%
£10.1bn
-5.4%
Hom
e Offi
ce
Crim
inal R
ecords Bureau
£9m
+75.8%
Offi
ce of the G
as & E
lectricity M
arkets (OFG
EM)
£0.6
74m
-5.5%
UK
Atom
ic Energy A
uth
ority pension
schem
e£20
0m
Foreign an
d C
omm
onwealth
Offi
ce £2.2bn
-4.9% [6
]
Adm
in£1.12bn
+0.8%
Peacekeeping£40
2m -3.8%
Oth
er grants £194m
-35.6%
BB
C W
orld Service £255m -6%
British
Cou
ncil £180
m -7%
Con
flict prevention£132m
+21.6%
AM
E program
me £35m
+144.2%
Taxes & licen
ce fees £26m +20
.9%
ND
PBs £5m
-18.6%
NH
S pen
sionsch
eme
£6.9
bn
£7.5bn
Teachers’
pension
schem
e
Wales O
ffice (W
O)
£5m+4%
Scotland O
ffice (SO
) £21m
[13]
North
ern Irelan
d Offi
ce (NIO
) £22m
-44.7%
Offi
ce of Rail R
egulation
£29m
-1.1%
Offi
ce for Bu
dget Respon
sibility £2m
-2.3%
Water Services R
egulation
Au
thority
(Ofw
at) £19m
+7.1%
Electoral C
omm
ission £8
6m
+258.3%
£100
m
Offi
ce for Standards
in E
ducation
(Ofsted)
£166
m -10
.7%
Departm
ent
forE
du
cation
£56.27bn
-5.7%Teach
ing Agen
cy£6
60
m -25.9%
Pupil prem
ium
£556m new
item
School infrastru
cture
£730m
-81.1%
Adm
in£270
m-2.3%
Edu
cation, stan
dards, cu
rriculu
m &
qualification
s £26
0m
-62.7%
Nation
al college£110
m-2.3%
Ch
ildren, you
ng people & fam
ilies£2.6
6bn -17.3%
Edu
cation fu
nding
agency (sch
ools)
£51.54bn
+2.8%
£5.3bn+190
.8%
£46
.24bn
-4.3%
Schools
(exc academies)
Standards an
dT
esting Agen
cy£20
m
Ch
arity Com
mission
for En
gland an
d Wales £27m
-10%
Crow
n Prosecu
tion Service
Inspectorate £4m
+2.5%
Attorn
ey general's offi
ce (see also LSLO) £4m
-7.8%
£1.6bn
NH
S & teach
ers pen
sion sch
eme
in Scotlan
dN
orthern
Ireland execu
tive pen
sion sch
eme
£1bn
Tran
sport for London
Local auth
ority transport
£1.93bn
+61%
Bu
s subsidies &
concession
ary fares £6
19m
-21.5%
Oth
er railways £577m
+161.7%
Motoring agen
cies £226m +1,642%
Crossrail £517m
+129.5%
Adm
in £146
m -25.7%
Maritim
e & C
oastguard A
gency £145m
+8%
Tolled crossings £59m
+165.3%
Sustain
able travel £71m -39.4%
Science, research
& su
pport fun
ctions £30
m -31%
High
Speed 2 £21m
£12.73bn+0
.8%
Departm
ent for T
ransp
ort
Aviation
, maritim
e, security &
safety £32m-75.8%
Netw
orkR
ail
£3.69
bn-9%
£3.34bn
+1.8%£3.24
bn+14.2%
Highw
aysA
gency
Cabin
et Offi
ce£4
61m
-21.9%
Mem
bers of the E
uropean parliam
ent £3m +46.5%
Execu
tive ND
PBs £1m
-96.7%C
omm
ittee on stan
dards in pu
blic life £1m +17.2%
Con
stitution
group £12m
+95.4%
Cabin
et Offi
ce £234m +15.4%
Offi
ce for Civil Society £18
5m +50
.6%G
overnm
ent digital service (Directgov) £28
m +24
.3%C
abinet O
ffice u
tilisation of provision
s £13m 217.4%
Cabin
et Offi
ce service concession
£12m +6.6%
£32.73bn-15%
Neigh
bourh
oodsLocalism
London
governance
£63m +28.7%
£2.62bn
-54.3%
£26.55bn
+0.5%
Spending by local
governm
ent
£1.13bn-62.1%
Dep
artmen
t of C
omm
un
ities an
d L
ocal G
overnm
ent
Principal civil
service pension
schem
e£5.1bn
£29.91bn
+1.2%
Inn
ovation, enterprise &
busin
ess £666m -49.3%
Free and fair m
arkets £650m
-12.5%
Govern
ment as sh
areholder £40
4m +580
.7%
Professional su
pport £335m -10
.4%
Science research
coun
cils £50m
+6%
£13.57bn-7%
High
eredu
cation
£5.61bn
-5.5%£3.9
4bn
-17.7%
Science
& research
£21.34bn
-7.9%
Departm
ent
for Bu
siness,
Inn
ovation an
dSkills
Furth
er edu
cation
HE
FCE
£6.8
4b
n-10
.7%
NO
TES
SOU
RCES: GU
ARDIAN
DATA, D
EPARTMEN
TAL ACCOU
NTS, IN
STITUTE FO
R FISCAL STU
DIES, PU
BLIC EXPEND
ITURE STATISTICAL AN
ALYSES (PESA), O
FFICE FOR BU
DG
ET RESPON
SIBILITY (OBR), H
OU
SE OF CO
MM
ON
S LIBRARY
RESEARCH: SIM
ON
ROG
ERS, KOO
S COU
VEE, MO
NA CH
ALABI, GEM
MA TETLO
W
GRAPH
IC: JENN
Y RIDLEY, M
ICHAEL RO
BINSO
N
The figures give a picture of major expenditure but exclude local governm
entspending not controlled by central governm
ent. We don't have room
to showeverything —
some program
mes are just too sm
all to go here, but this gives afl
avour of where your tax pounds go. It also excludes governm
ent departments
that are predominantly financed bytheir incom
e, such as the Crown Estate or
the Export Credits Guarantee D
epartment. The totals here add
up to more than the total budget, because som
e of the smaller
government departm
ents are funded via the larger ones, such as the Parliam
entary Counsel Offi
ce, funded via the Cabinet Offi
ce.A
LL % CHA
NG
ES CALCULATED
USIN
G IN
FLATION
RATE OF 2.38%
[1] Interest paid on the public debt. Treasury spending in 2008-09 and 2009-10 w
as dominated by the
impact of interventions in the financial sector —
the figure shown here is
gross spending. In fact, in 2010-11 the net effect of financial stability
activities was to yield incom
e to the Treasury. Loans to financial institutions
[2]
were repaid to the Treasury in 2010-11 and there w
as no further purchase ofshares and other assets in the year —
so we have show
n the core department
spending separately. The increase is due to the provision for Equitable Life. The Rural Paym
ents Agency distributes CAP payments —
covered bytransfers from
EU so do not show
up as net spending here. [3]
[4] Benefit spending excludes child benefit, guardians' allow
ance, widow
s’pensions, statutory paternity pay, statutory adoption pay —
these paid by H
MRC, M
oD, BIS respectively. Excludes spending on fam
ily health services. GP running cost includes
salaries, hospitality budgets, home and overseas accom
modation costs.
[5]
[6] D
ata from Treasury CO
INS database, operations spending
in Libya, Iraq & Afghanistan paid for separately out of Treasury
special reserve and details from H
ouse of Comm
ons library The am
ount of government funding from
BIS and DCM
S, rest from
licence fees from broadcasters and m
edia organisations.[7]
[8] M
Ps’ expenses now adm
inistered by the Independent Parliam
entary Standards Authority (IPSA). O
verall contribution, includes the effects of the U
K's rebate, w
ithout which the 2011-12 contribution w
ould be £15.6bn. This cash is distributed to 'good causes'. This financial year
£135m w
ent to the Olym
pics and Paralympics - on top of m
ore than £750m in April 2012.
Increase due to the 2010 election: the absence of MPs during the cam
paign reducing costs substantially. Took over from
Arts Council of Scotland this year. Includes non-voted costs of elections in Scotland – w
ithout which spending w
as £7.1m
[9]
[10]
[11][14]
[12]
Academ
ies
Crim
e &
policing
£5.63bn
-6.6%
UK
Finan
cial Investments £5m
+70.6%
[5]
Primary
health
care
£21.64
bn
-1.2%
GP
services
Dental
Opth
almic
£491m
+0.2%
Pharm
acy£2.14bn
+3.9%
£7.76bn
-1.4%
£2.86
bn-0
.9%
Prescriptions
£8.25bn
-2.7%
Secondary
health
care(h
ospitals etc)
Gen
eral & acu
te
Com
mu
nityh
ealth£6
8.76
bn
+1.6%
£40
.20bn
+0
.9%
Eu
ropeanU
nion
[9]
£6.9
7bn-14.9%
War pension
s£916m
-4.3%
Min
istry of D
efence [6]
£37.25bn-4.5%
Qu
angos &agen
cies£178
m-2%
NH
S£9
7.46
bn-0.9%
Learning
difficu
lties
Mental
illness
Matern
ity
A &
E
Oth
ercontractu
al
£2.71bn +2.4%
£3.17bn
+1%
£8.61bn
+0.4%
£9.12bn +5.9%
£2.62bn
+1.1%
£2.33bn +2.1%
Adm
in £153m
-5.6%
Coin
age £38m +21.6%
Debt M
anagem
ent Offi
ce £12m -23.2%
Ban
king & gilts registration
services £11m +2.4%
Treasu
ry [2]£228
m -86.6%
Fin
ancial
stability/fin
ancial
institu
tions
£16.14
bn
M
oney in
Adm
in£3.53bn
-3.4%
Parliamen
tary Cou
nsel O
ffice £9
m -15.6%
Offi
ce of Qu
alifications an
d Exam
ination
s Regu
lation (O
FQU
AL)
£16m +3.2%
Dep
artmen
t for Environ
men
t, Food an
d R
ural A
ffairs [3]
Environ
mental risk an
d emergen
cies£167m
-24.3%
Environ
ment £9
87m +14.7%
Environ
ment A
gency £19
9m -21.7%
Natu
ral Englan
d £633m
-5.6%
Departm
ent £361m
+2.7%
Ru
ral Payments A
gency £20
5m -2.7%
£2.33bn-0
.2%
Dep
artmen
t of H
ealth
£106
.66
bn-1.2%
Offi
ce of Com
mu
nications (O
fcom) [7] from
governm
ent fu
ndin
g (rest from licen
ce fees) £109m
-15.2%
Olym
pics £89
9m
+69.3%
Mu
seum
s and galleries £40
7m-19.6%
Arts £39
8m
-14.2%
Olym
pic Lottery Distribu
tion Fu
nd £315m
-22.8%
Sport and R
ecreation £174m
-7.8%A
rchitectu
re & th
e Historic E
nvironm
ent £131m-19.6%
Libraries £113m-5.3%
S4C
£91m-12.3%
Broadcasting an
d Media £58
m+46.8%
DC
MS A
dmin
istration £49m
-1.5%M
useu
ms Libraries an
d Arch
ives Cou
ncil £47m
-26%
Tourism
£45m-0
.3%
Occu
pied Royal Palaces &
other h
istoric buildings £19
m+16.6%
Royal parks £16m
-5.8%
Gam
bling & licen
sing (alcohol) &
Horseracing £10
m +461.8%
Listed places of worsh
ip £7m -69.8%
Research
surveys an
d other services £3m
-13.2%
VAT
relief on m
emorials that are n
ot buildings £1m +534.9%
Dep
artmen
t for Cu
lture, M
edia an
d Sp
ort
Nation
al Lottery Distribu
tion Fu
nd expen
diture [10
]
£7.62bn
+10.5%
£1.49bn
+21.8%
£3.31bn+13%
Broadcast licen
ce revenu
e
Arts C
oun
cil Englan
d £461m
-1.5%E
nglish H
eritage £170m
-9%
Sport Englan
d £105m
-9.6%
Olym
pic Delivery A
uth
ority £74m +75.5%
UK
Sport £68m +27.4%
VisitB
ritain £50
m +29.1%
Nation
al Lottery Com
mission
(ru
nn
ing costs) £5m -4.6%
Arts C
oun
cil Wales £36m
-1.3%
Creative Scotlan
d£76m
[12]
Security In
dustry Au
thority (SIA
) £28m
-1.6%
Serious O
rganised C
rime A
gency (SO
CA
) £470m
+12.1%
Nation
al Policing Improvem
ent Agen
cy (NPIA
) £360m
- 11.1%E
quality &
Hu
man
Rights C
omm
ission £40
m -13.7%
Indepen
dent Police Com
plaints Com
mission
(IPCC
) £30m
-3.2%Seriou
s Fraud O
ffice (SFO
) £30m
-19.1%In
dependent Safegu
arding Au
thority (ISA
) £13m -3.3%
Offi
ce of the Imm
igration Service C
omm
issioner (O
ISC) £4m
+6.3%Cou
ncil for R
eserveForces an
d Cadets
Association
£98
m
Com
monw
ealthW
ar Graves
Com
mission£47m
Mu
seum
s(R
AF, N
avy, Arm
y)£17m
Royal H
ospitalC
helsea
£11mA
fghan
istan£3.6
bn -15%
Iraq£95m
-72.9%
Libya£247m+996.6%
Operation
s and
Peacekeeping£3.18
bn-14%
Defen
ce capability(A
rmy, N
avy, RA
F)
£32.93bn
-3.5%
Free sch
ools£75m
+1,121%
Fin
ancial Services A
uth
ority£492m
+4.9%
Wh
ere your taxes w
ent th
is year – and
wh
ere the cu
ts were m
ade Pu
blic spendin
g by the U
K's cen
tral governm
ent departm
ents, 20
11-12
[13]
Total department expenditure from
Core table 1 of the DH
annual report. Betw
een 2010-11 and 2011-12 Personal Social Services grants (of approx £1.52bn) w
ere transferred from D
H to the D
CLG. If this am
ount were excluded from
the 2010/11 published spending total, then the percentage change for total depart-m
ental spending from year to year w
ould be +0.3%. The NH
S total is unaffected
[14]
Figure 1.10: Infographic by British newspaper the Guardian depicting UK gov-ernment spending by department in 2011–2012. The image appeared online,in a post on the newspaper’s Data Blog analyzing and summarizing the data(http://www.theguardian.com/news/datablog/2012/dec/04/government-spending-department-2011-12).
22
Figure 1.11: Infographic made by now-extinct company Loku illustrating the different types ofcoffee and the different personalities of the people who drink them.
23
Figure 1.12: Decorative poster sold by the company Pop Chart Lab (http://popchartlab.com/ )consisting of an infographic illustrating the different types of comic book superpowers and someof the characters who have them.
24
Figure 1.13: Kitchen apron sold by Pop Chart Lab (http://popchartlab.com/ ) featuring an info-graphic graph depicting the different types of kitchenware.
25
Figure 1.14: “Map of Science” poster made in 2006 by Kevin Boyack, Dick Kla-vans, and W. Bradford Paley. It appeared in many publications, including the 2006gallery of the scientific journal Nature (MARRIS, 2006) and several magazines. Itis also available as a poster, given away for free at Paley’s Information Esthet-ics website (http://informationesthetics.org/node/20). Paley also features this imageon his website, in a section dedicated to his visualizations of scientific knowledge(http://wbpaley.com/brad/mapOfScience/index.html).
26
Figure 1.15: Another poster made by W. Bradford Paley and Dick Klavans. Itillustrates how different nations emphasize different topics of scientific research(http://wbpaley.com/brad/mapOfScience/index.html).
27
2 BACKGROUND
2.1 Basic Concepts
In many fields it is often necessary to represent objects and the relationships between these
objects. Graphs provide a very simple, powerful and intuitive way of doing so and are thus
vastly used in fields ranging from software engineering, databases and artificial intelligence to
medical science, biology, chemistry and many others. In computer science, graphs are one of
the most commonly used data structures.
Formally, a graph can be simply defined as a finite set of nodes and a finite multi-set of
edges, with the former standing for the objects and the latter for the relationships between those
objects. An edge is defined as a pair of nodes. If both nodes of an edge are the same, it is said
to be a self-loop. If an edge occurs more than once, it is called a multiple edge. If a graph has
no loops and no multiple edges, it is known as a simple graph. Two nodes that are a part of the
same edge are adjacent to each other. The neighbors of a node are the nodes adjacent to it and
its degree is the number of its neighbors. A graph is said to be non-directed if the edges are
unordered pairs of nodes, and is said to be regular if all its nodes have the same degree.
A directed graph (or digraph) is a graph in which each edge is defined as an ordered pair of
nodes. In a digraph, an edge that goes from node A to node B is an outgoing edge of A and an
incoming edge of B. Nodes may have no incoming or no outgoing edges, in such cases being
respectively known as sources and sinks.
In a digraph, a path is a sequence of nodes in which there is always an outgoing edge of
a node to the one that immediately follows it (except for the last node of the sequence). If
the paths form cycles (paths that begin and end with the same node), the graph is known as
cyclic. Otherwise, it is acyclic. If there is a path for each pair of nodes, the graph is said to be
connected.
An important special case of a graph is the tree, which is used to represent hierarchical
structures and is so called due to its resemblance to biological trees. A tree is a graph in which
every two nodes are connected by at most one path, thus being connected and acyclic. An
important type of tree is the rooted tree, in which each node (with the exception of the root),
has one parent node and may have children nodes. If a node has no children, it is a leaf node.
28
2.2 Graph Drawing
Graph drawing algorithms are of course essential to graph visualization techniques. Here
we present a short background on the subject. For a more detailed study of graph drawing, the
reader can refer to the books by Di Battista et al. (1999) and Tamassia et al. (2014).
The problem that graph drawing techniques attempt to solve can be very simply stated: given
a graph, calculate the position of its nodes and the curve to be drawn for each edge (HERMAN
et al., 2000). Finding a solution to this problem, though, is not as trivial.
Many layout algorithms have been developed (BATTISTA et al., 1999; TAMASSIA, 2014)
and are widely used in graph visualizations. Each algorithm takes into account different aes-
thetic criteria, such as minimizing the number of bends in an edge, line crossings, or the size of
the area occupied by the drawing, and very often will only work on specific types of graphs.
Graph drawing algorithms usually define a rule, or drawing convention, that the generated
drawing must adhere to. These conventions might be very complex requirements, but they are
usually quite simple, with some of the most often used being the polyline, the straight-line,
and orthogonal drawings (Figure 2.1). Constraints are often imposed on the drawing, such as
forcing the algorithm to always place a certain vertex at a certain position, clustering (placing a
subset of nodes close together according to certain criteria), or drawing a certain subgraph with
a predefined shape.
It is also desirable that a graph drawing algorithm be predictable, so that two different runs
with the same or similar graphs should produce similar visual representations (HERMAN et al.,
2000). This way the user can maintain a consistent “mental map” of the drawing.
There is no graph drawing algorithm that could be considered the best—as said before, the
effectiveness of graph drawings depends on their readability, and that changes depending on
how (and where) the technique is being applied. User studies show that a drawing is more read-
able if it has no edge-bends, no edge-crossing, and small edge-lengths; occupies small screen-
Figure 2.1: Common graph layouts. From left to right: polylines, straight line segments, or-thogonal drawing, and grid layout.
29
space; displays symmetries; and satisfies application-specific constraints such as clustering and
alignment (BATINI; FURLANI; NARDELLI, 1985; COHEN et al., 1994; PURCHASE; CO-
HEN; JAMES, 1997). It is usually the case that those readability criteria cannot all be satisfied
simultaneously, so trade-offs must be made.
There are many different types of graph drawing algorithms, with the force-directed or en-
ergy minimization approach being of particular interest to us. These algorithms rely on math-
ematical equations that act as constraints for the drawing (e.g., minimization of edge crossings
or edge bends) and are passed to a “solver" that tries to optimize them (BATTISTA et al., 1999).
The algorithms are very customizable and can be applied on all types of graphs, usually produc-
ing “organic-looking” layouts. They are also interesting for allowing users to see the drawing
being built in real-time by rendering the intermediary steps of the layout computation process.
The main drawbacks of algorithms of this type are that they tend to be very computationally
expensive (especially with larger graphs) and that they are often not deterministic.
For the user to be able to interact with the graph in real-time it is very important that a graph
drawing algorithm be efficient. Due to more sophisticated algorithms and faster, multi-core
CPUs and GPUs, however, performance is gradually ceasing to be a problem.
Of the optimization-based techniques, the ones that are of particular interest to us are the
force-directed algorithms. Their pleasing visual results, relative ease of implementation and
flexibility as to the inclusion of new aesthetic criteria make them a staple of graph visualization
in general.
The basic idea of a force-directed algorithm is to treat the graph as a physical system, as-
signing forces to the nodes and edges, and minimizing its energy until reaching a stable layout.
The forces will work to rearrange the positions of the nodes until the system finds itself in a
state of mechanical equilibrium.
One interesting property of force-directed algorithms is that most of them support the ap-
plication of constraints. A position constraint can be established by forcing nodes to remain
within a certain region, while other types of constraints can be used if they can be expressed
with forces. Examples of this include Sugiyama and Misue’s use of magnetic fields to impose
orientation constraints (1994, 1995), as seen in Figure 2.2, and the utilization of dummy nodes
to force groupings.
Force-directed algorithms suffer from two major problems. One is scalability. The more
nodes and edges a graph has, the longer it takes for the system to converge. The other problem
is predictability. Two different runs of an algorithm over similar (or even the same) input graphs
might generate two completely different layouts, which is not very helpful in allowing the user
30
Figure 2.2: Sugiyama and Misue’s magnetic-spring layout (1994, 1995).
Figure 2.3: Sample layout generated using the Eades spring-embedder technique (1984).
to create and maintain a mental map of the visualization. One approach that has been used
to minimize this is to run another layout algorithm first, and then execute the force-directed
technique.
The first force-directed algorithm was proposed by Eades (1984), producing visual results
as shown in Figure 2.3. It takes the intuitive approach of treating the graph as a mass-spring
system, with nodes being steel rings and edges springs that connect them. Nodes also exert a
repulsive force on one another and a drag force or some amount of friction is applied to the
model. Despite the physical metaphor, it does not aim for physical accuracy: Hooke’s law is
not employed on the springs and forces affect velocity instead of acceleration. This algorithm
31
results in an optimization process, since it minimizes the energy within the physical system.
The layouts it generates have uniform edge lengths and are able to depicting graph symmetry.
This technique is very simple to implement and it is also generically applicable. Bertault (2000)
managed to make a more deterministic version of it by preserving edge crossings.
Many other algorithms extended the basic idea presented by Eades. The one most relevant
to this work is the technique proposed by Fruchterman and Reingold (1991). This algorithm
consists on calculating on each iteration all the forces that attract and repulse nodes. Nodes con-
nected by edges exert an attraction force between them, while all nodes exert a repulsion force
on all others. From the forces, the position displacement a node will suffer during each itera-
tion is calculated and limited by the current value of an attribute (usually used as temperature),
which is progressively decreased. This algorithm’s straightforward implementation, relatively
fast running speed and high flexibility when it comes to the insertion of constraints and other
aesthetic criteria make it probably the most popular force-directed layout technique. Its major
drawbacks are its high complexity of O(n2) per iteration and its unpredictability. These can
be dealt with, though, and numerous improved versions of the algorithm have been proposed.
Both MagnetViz and the GraphCoiffure prototype (described in detail in chapters 4 and 6, re-
spectively) use a variation of the Fruchterman-Reingold layout. Sample graph layouts generated
with this technique can be seen in figures 2.4 and 2.5.
Over the years, many new force-directed algorithms have been proposed, several of which
being faster and having better visual results than the Fruchterman-Reingold layout. Fruchterman-
Reingold, however, is still widely used, being readily available in most graph drawing software
and libraries, such as Boost Graph, Graphviz (GANSNER; NORTH, 2000), OGDF (CHIMANI
Figure 2.4: Fruchterman-Reingold layout (1991).
32
Figure 2.5: Fruchterman-Reingold layout (1991) of the largest component of the co-authorshipgraph of the AVI conference (26 nodes and 78 edges).
et al., 2012), NetworkX (HAGBERG; SCHULT; SWART, 2008), among others. This ubiq-
uity and the algorithm’s ease of implementation and modification make it a natural choice for
application prototypes.
2.3 Graphic Design: the Grid
One of the main tasks of graphic designers is to decide where each typographic element
should be placed on a (physical or virtual) page. There are, of course, no absolute rules and a
lot is dependent on the needs of the project and the designer’s aesthetic taste and preference. A
common approach, however, is the use of grid systems.
A typographic grid is an orthogonal page planning system that divides informational ele-
ments into manageable chunks, assuming that placement and scale relationships between these
elements help viewers to understand their meaning (SAMARA, 2005). Similar items are ar-
ranged in similar ways, with similarities becoming thus more apparent and, as such, more rec-
ognizable. The spatial regularity of the grid lets users easily find the information they are look-
ing for because the junctures of horizontal and vertical divisions act as signposts for locating
that information.
A grid system is composed of the following elements (also shown in Figure 2.6):
33
• Margins
Negative spaces between the edge of the page and the content (the area where text and
images appear). Their proportions help establishing the visual tension of the composition,
and they can be used to focus attention, as a resting place for the eye, or for complemen-
tary information (e.g., running heads, page numbers, annotations, etc.).
• Columns
Vertical alignments of text and images that create horizontal divisions between the mar-
gins of the page. There is no limit to how many columns a grid may have.
• Flowlines
Horizontal lines used to align text and images vertically on the page, breaking it into
horizontal bands as serving as guides for the eyes.
• Module
Individual units of space delimited by the crossings of columns and flowlines.
• Spatial zones
Groups of one or more modules that together can be assigned a specific information el-
ement (e.g., a long horizontal field can be used for the title of a page or an image, long
vertical fields can be used as columns of text, etc.).
• Gutter
Optional columns and lines of whitespace between modules that help make the content
easier to read.
• Markers
Placement indicators for complementary information that occupy only one location in any
layout. They can be used for elements such as running heads, page numbers, etc.
35
3 RELATED WORK
Our related work can be divided into three categories: graph editors (Section 3.1), tech-
niques for interactive layout manipulation (Section 3.2), and techniques for attribute-based
graph visualization (Section 3.3).
3.1 Graph editors
Gephi (BASTIAN; HEYMANN; JACOMY, 2009) is a free graph editor that lets researchers
import their own data to create node-link diagrams. Gephi provide users with tools for selecting
a layout algorithm and changing some visual attributes, such as node and edge color and edge
type (e.g., curved or straight). There is, however, not much support for different node shapes and
edge styles (e.g., dotted, dashed, different arrowheads, etc.). In terms of layout modification,
users can select groups of nodes and turn them into metanodes, making what is essentially
a hierarchical visualization. Gephi also supports the visual encoding of some of the graph’s
semantics by providing metrics that can be calculated and encoded as visual attributes such as
node size and color. After customizing the graph’s look using the provided features, users can
export it to an image file.
Somewhat similar to Gephi is yEd (YED, 2014), another free graph editor. The emphasis of
yEd, though, is more on diagrams such as UML, flowcharts, and entity-relationship diagrams.
As such, it has better support for node shapes and edge styles, allowing for more customization.
Another difference is a property mapper, which lets users encode any property of the nodes and
edges as a visual attribute.
Cytoscape (SHANNON et al., 2003) is an open-source platform for network analysis. It is
similar in visual power to the graph editors, and despite its focus on analysis, Cytoscape can
be effectively used to create static images of graphs. It lets researchers customize many of the
graph’s visual properties, such as node and edge shape, color, and opacity. It also supports the
graph’s semantic information, allowing users to map any attribute of the data (e.g., name, type,
degree, etc.) to a visual property (e.g., color, size, font type, etc.). Another feature is its ability
of handling multi-level visualizations by means of nested graphs.
NodeXL (SMITH et al., 2010) is an open-source network analysis and visualization tem-
plate for Microsoft Excel. It supports common network formats, such as Pajek, UCINet and
matrix formats (e.g., adjacency matrices, edge lists) and includes tools to import networks from
social networking platforms, such as e-mail, Twitter, YouTube, and Flickr. It draws graphs us-
36
ing well-known force-directed algorithms and lets users customize visual attributes (e.g., size,
color, line style, etc.) and map graph metrics to these attributes. It also provides filters to de-
termine what the visualization will show. In terms of layout manipulation, NodeXL lets users
move nodes around by clicking and dragging, supports the separation of connected components
by size (e.g., to emphasize the main, largest component of a graph over several smaller ones),
and allows for the creation of metanodes formed by nodes that have common attributes. While
it can be used to generate static graph visualizations, these do not look as good as those made
with more specialized software, such as Gephi and yEd. Due to the metrics it includes, its
support for popular formats, its integration with Excel and its ease of use, NodeXL is popular
among social network analysts.
Tulip (AUBER, 2003) is a framework for the analysis and visualization of graphs. It was
designed to support developers in creating new tools and also includes a GUI that provides
access to its already implemented set of metrics, algorithms, and visualization tools. Tulip has
been designed with a plug-in architecture so that new tools written in Python or C++ can be
integrated into the platform. Out of the box, it can import graphs from several formats (CSV,
UCINet, Pajek, GML, among others), and supports different visualizations, which include node-
link diagrams, for which several layout algorithms are included. Users can modify the visual
encoding by mapping metrics to color and size, choosing among predefined node shapes, and
making the edge color and thickness be interpolated from the nodes. Custom node-shapes can
only be added as plug-ins. In terms of layout, it supports moving nodes around by clicking and
dragging, editing edge bends, and hierarchical graphs with metanodes containing subgraphs. It
can export images, though its focus is more on in-software exploration and analysis, and the
images do not look as good as those made with software such as Gephi and yEd, for instance.
Another option for creating static graph visualizations is Graphviz (GANSNER; NORTH,
2000), a software package and library specific for graph drawing. Graphviz features many
layout algorithms (including the flagship dot algorithm) and a lot of flexibility in how nodes
and edges are displayed (i.e., shape, color, style, etc.). Graphviz also includes DOT, a powerful
language for the description of graphs and how they should be drawn (i.e., which layout to use,
position of individual nodes, appearance of nodes and edges, etc.). Programs that use Graphviz
are run from the command line and output image files. There is no graphical user interface
for a more WYSIWYG approach. So, the only way to change a computed visualization is to
regenerate it after entering different parameters to the drawing algorithm. Another problem is
that the graph itself, its layout and its visual style are all defined together, in the same script,
making reproduction of this style across different graphs not very practical.
37
Also worth a mention is the web-based Visual Investigative Scenarios, or VIS (<https://vis.
occrp.org>), which lets journalists create infographics of business and criminal networks. It is
effective within its journalistic context, but far less visually flexible than the others.
One common drawback of all of these tools is that none provides much support for layout
manipulation. After choosing a layout algorithm and setting its parameters, there is not much
users can do beyond moving individual nodes or grouping nodes together as metanodes. A little
more layout flexibility can be achieved with constraint-based layouting applications, such as
Ryall et al.’s GLIDE (1997) and Dwyer et al.’s Dunnart (2008), but even they are very limited, as
they only let users apply some constraints to layouts that are otherwise automatically generated.
Another big drawback is that these tools only support a very limited degree of visual cus-
tomization, especially when compared to specialized graphics editors like Adobe Illustrator or
Adobe Photoshop. While not always an issue, for users requiring more visual sophistication
this can be very problematic. Graphics editors, however, are visually powerful but are still far
from ideal for creating visualizations. Although they give users complete control over the im-
ages through features that range from image processing algorithms to interactive drawing and
image manipulation, they only process pixels and vectors, providing no link to the underlying
data. With this, all visual mappings having to be made by hand, which can make it impractical,
when not downright impossible, to use them to create visualizations.
3.2 Interactive layout manipulation
Graph drawing techniques such as those described by Di Battista et al. (BATTISTA et al.,
1999) and Tamassia (TAMASSIA, 2014) can be used to generate high-quality node-link layouts
from the graph topology. However, this is not always enough. Some users have specific needs
that would require them to manipulate the layouts to make graphs more meaningful or under-
standable. Yet, only few graph visualization applications feature manipulation that goes beyond
manually moving nodes around (MCGUFFIN; JURISICA, 2009; SPRITZER; FREITAS, 2012;
WONG; CARPENDALE; GREENBERG, 2003; WONG; CARPENDALE, 2007).
Some of the techniques that provide more substantial layout manipulation focus on the repo-
sitioning of nodes. For example, McGuffin and Jurisica’s approach lets users alter a node-link
diagram by applying a chosen layout algorithm on a selection of nodes instead of on the entire
graph (MCGUFFIN; JURISICA, 2009). In contrast to this local approach, our own MagnetViz
technique (SPRITZER; FREITAS, 2008; SPRITZER; FREITAS, 2012), allows users to manip-
ulate the entire layout by reorganizing it through the insertion of virtual magnets that attract
38
nodes that fulfill some given criteria.
Besides altering the position of nodes, there are also techniques that let users to modify a
layout by changing how the graph’s edges are drawn. Riche et al. (RICHE et al., 2012) clas-
sify the design space of such techniques through six design dimensions based on characteristics
of user interaction (i.e., how users interact and how the interaction affects the visualization).
They illustrate these dimensions by describing four families of techniques, namely, interactive
bundling, interactive edge fanning, edge magnets (an extension to edges of the approach taken
by MagnetViz), and interactive edge legends (the use of edge curvature to represent informa-
tion). Other techniques that let users modify edges are EdgeLens (WONG; CARPENDALE;
GREENBERG, 2003), EdgePlucking (WONG; CARPENDALE, 2007), and Schmidt et al.’s
techniques for multi-touch surfaces (SCHMIDT et al., 2010), which allow users to interactively
bundle edges together or change their curvature. Another pertinent technique is Nascimento and
Eades’s User Hints (2002), which let users provide the layout generating system with “hints”
that help it emphasize specific characteristics, gearing the visualization into one that is more
suited to their needs. Hints can also be used with the goal of speeding up the generation of a
high quality layout from a combinatorial optimization point of view.
Despite having the common trait of interactive manipulation of layouts as a very significant
feature, all the techniques mentioned above were designed with a focus on the exploration of
graphs. While several are able to export static images that can be used elsewhere, they were not
explicitly designed for the creation of visualizations that can stand on their own, independent
of interaction, and also do not provide users with much flexibility in customizing many of the
graph’s visual attributes.
3.3 Attribute-based graph visualization
In most graph visualization techniques, attributes are handled in a complementary fashion.
They can serve as labels, be encoded as different shapes, colors and sizes for nodes and edges,
or be used for filtering and selection. The most influence attributes usually have on a layout
is when they are used to create metanodes in order to decrease the visualization’s cognitive
overload. These metanodes often contain other metanodes, becoming a graph hierarchy that can
be explored by users by means of interaction and navigation techniques (PATTISON; VERNIK;
PHILLIPS, 2001).
While most graph visualization techniques are still focused on topology, recent years have
witnessed a growth of attribute-based techniques. These techniques build visualizations based
39
on the attributes with the topology serving only in a limited way (if used at all), borrowing
heavily from the field of multidimensional data visualization (WATTENBERG, 2006; SHNEI-
DERMAN; ARIS, 2006; ARIS; SHNEIDERMAN, 2007; BEZERIANOS et al., 2010).
A recurring theme in attribute-based visualization is the use of scatterplots, like the ones
provided in techniques such as Wattenberg’s PivotGraph (WATTENBERG, 2006), Aris and
Shneiderman’s semantic substrates (SHNEIDERMAN; ARIS, 2006; ARIS; SHNEIDERMAN,
2007) and Bezerianos et al.’s GraphDice (BEZERIANOS et al., 2010). In essence, the basic
approach consists in displaying nodes as points in a scatterplot that has as its axes two user-
chosen attributes, with edges shown as lines connecting the nodes. Despite the same basis,
these scatterplot-based techniques have important differences.
PivotGraph (WATTENBERG, 2006) displays one scatterplot at a time, with nodes that have
the same value for the same categorical attribute being aggregated in metanodes that are rep-
resented as points with size proportional to the number of nodes they contain. The semantic
substrates technique (SHNEIDERMAN; ARIS, 2006; ARIS; SHNEIDERMAN, 2007), on the
other hand, uses no aggregation but displays several scatterplots simultaneously. Nodes are
placed into regions, each containing a scatterplot, and users are provided with controls to de-
fine the visibility of edges. Yet another approach is taken by GraphDice (BEZERIANOS et al.,
2010), which has two panes, one that displays the main plot and another for an overview matrix
of all possible scatterplots (rows and columns containing all attributes and a thumbnail of each
scatterplot drawn at the intersections). The main plot changes by navigating in the scatterplot
matrix, with animation providing smooth transitions from one layout to the next. None of these
techniques actually handles edge attributes.
While scatterplots are so far the predominant approach to attribute-based graph visualiza-
tion, they are not the only option. Pretorius and van Wijk (PRETORIUS; WIJK, 2006) proposed
a technique for the visualization of transition graphs based on hierarchical attribute-based clus-
tering. Clusters are positioned linearly, with their hierarchy shown as a tree-like node-link
diagram and edges shown with a superimposed arc diagram. Later on, the same authors pro-
posed another system for multivariate graph visualization based on recursive attribute-based
clustering (PRETORIUS; WIJK, 2008). The cluster hierarchy is displayed on the left and right
sides of the screen, respectively representing the source and target nodes, while the edge labels
are displayed in the center, with lines linking source and target nodes to their respective edge
labels.
The aforementioned approaches have three major issues:
• They focus too much on the attributes in detriment of the topology. This is illustrated by
40
the scatterplot techniques: by using purely scatterplots to lay out a node-link diagram, the
structure of the graph is not necessarily made clear, since the positioning is based only on
node attributes.
• They pay too little attention to edges and their attributes.
• They are either simple but limited or powerful but too complex. In terms of power and
cognitive load, visualizations such as PivotGraph are simple to use and comprehend, but
they are limited in what they can actually show, while others, such as semantic substrates
(SHNEIDERMAN; ARIS, 2006; ARIS; SHNEIDERMAN, 2007) and Pretorius and van
Wijk’s techniques (PRETORIUS; WIJK, 2006; PRETORIUS; WIJK, 2008), are powerful
but a lot more complex, requiring a more specialized user.
Aside from these “purely” attribute-based techniques, there are some others that take a
middle-ground approach, trying to balance topology and attributes. One such technique is
GrouseFlocks (ARCHAMBAULT; MUNZNER; AUBER, 2008), which builds a topology-based
layout on top of an attribute-based cluster hierarchy refined by the users. Another “middle-
ground’ technique is MagnetViz (SPRITZER; FREITAS, 2008; SPRITZER; FREITAS, 2012),
which provides users with tools to manipulate a layout according to their own criteria, either in
terms of the graph’s topology or meta-information (attributes of nodes and/or edges). We give
more details about MagnetViz in the next chapter.
41
4 PREVIOUS WORK: MAGNETVIZ
The semantics of a graph is what the graph means to the people who will use it, consisting
of its context of use, the attributes of its nodes and edges (i.e., its meta-information), and the
knowledge these people already have about the data it represents. While a graph’s topology is
undoubtedly its main feature, its semantics is often important for numerous fields, ranging from
social science and biology to chemistry and urbanism. Nevertheless, works in graph visualiza-
tion (and node-link layout algorithms, in particular) have—with few exceptions—given little
emphasis to semantics, focusing almost uniquely on topology.
Topology-based layout algorithms are very effective at producing visualizations that are of
high aesthetic quality. These techniques are generic and can thus be applied in a wide gamut of
fields. This generic quality, however, may also be a disadvantage, since users may not neces-
sarily get the best layout for their needs if something more context-sensitive is called for. As a
result, some users may wish to make modifications on these layouts to make them more useful
for their specific applications.
As seen in the related work (Chapter 3.2), several graph visualization techniques and ap-
plications allow for some level of interactive layout manipulation, but only a handful feature
manipulation schemes that are more sophisticated than simply manually moving nodes around.
Even when possible to manipulate the layout in a deeper way (e.g., applying a different layout
on a subset of nodes), usually only the graph’s topology is used by the manipulation techniques.
On top of that, these techniques are designed for a context of graph exploration and navigation
and as such are particularly well suited for the creation of a layout for presentation.
In a previous work (SPRITZER; FREITAS, 2008) we introduced MagnetViz, a technique
for node-link layout manipulation. MagnetViz was designed with the goal of letting users inter-
actively manipulate a force-directed graph layout into one more suitable to their needs by using
tools that seize both on the graph’s topology and application-specific semantics. The resulting
layout can lead to a more expressive visualization that may provide new insight into the dataset
and serve as a starting point for further exploration of the graph. MagnetViz was designed
for exploration, but by observing the subjects of our user tests during the validation process
(SPRITZER; FREITAS, 2012), we realized its potential as a tool for communication, since it
could effectively be used to help users create layouts that emphasized some specific known as-
pect of the graph. This line of thought made us aware of the potential need for techniques for
the creation of graph visualizations for communication, which led us to what would eventually
become GraphCoiffure.
42
In this chapter, we describe MagnetViz, detailing its concepts, implementation, and evo-
lution, as well as describing the evaluation process to which it was submitted and the results
obtained.
4.1 The Technique
4.1.1 The Magnet
The key concept in MagnetViz, magnets are special objects that can be added to the scene to
attract nodes of a graph that fulfill certain user-defined criteria. A magnet works by exerting onto
each of these nodes an attraction force that will progressively move them towards it, thereby
building around it a cluster of semantically-related nodes. When these nodes move, the force-
directed layout algorithm ensures that all the other nodes that are connected to them by edges
will also move, reorganizing the whole layout of the graph in the process.
When creating a magnet, users should assign to it at least one attraction criterion and
define the magnitude of the attraction force. If a magnet has multiple criteria, any node that
fulfills any of the criteria will be attracted. If users want to make sure that attracted nodes fulfill
a specific criterion, though, they can set it as a requirement. In order to be attracted, a node
needs to satisfy all requirements and at least one of the remaining criteria (if there are any).
Simple criteria work, then, as the logical operator “OR,” while criteria marked as requirements
work as the operator “AND.” The “NOT” operator is also supported by marking a criterion
as a complement, which will attract all nodes that do not fulfill it. Criteria are managed in
the magnet’s properties panel, where users can also define whether the magnet is active or not
(that is, whether it exerts attraction forces on the nodes that fulfill its criteria) and set properties
regarding the magnet’s visual representation and hierarchy (see Section 4.1.4).
Magnets are visually represented as shown in Figure 4.1. The magnitude of a magnet’s at-
(a) An active magnet. (b) An inactive magnet. (c) A magnet attracting three nodes.Figure 4.1: Visual representation of magnets and their attracted nodes.
43
traction force is visually encoded as the magnet’s radius, being always proportional to it and
altered by dragging the mouse with the shift key and left mouse button pressed. The magnet’s
inner circle’s fill color is red when the magnet is active (Figure 4.1a) and gray when it is inac-
tive (Figure 4.1b). The outer color is the "magnet color", which is also used in a dashed ring
that appears around attracted nodes (Figure 4.1c). When a node is attracted by more than one
magnet, rings corresponding to each of the magnets are displayed around it (see Section 4.1.3).
MagnetViz’s flexibility in layout manipulation comes in great part from the different types
of attraction criteria that can be employed. We list below example criteria that we included
in the proof-of-concept prototype we implemented to test MagnetViz. These criteria are just
a subset of what MagnetViz conceptually supports and were chosen because they are easy to
implement and allow for a considerable amount and variety of operations, being thus good tools
to illustrate the technique.
Topology-based
• Degree: Attracts nodes based on degree (i.e. edge amount).
• Adjacent Nodes: Attracts nodes based on its number of adjacent nodes. Note that this
differs from degree as there may be more than one edge between two nodes.
• Edge Amount: Attracts nodes based on the amount of edges they have to a given target
node.
• Path: Attracts nodes based on the topological distance of their paths to a target node.
• Connected Component: Attracts connected subgraphs (maximally connected or not)
based on the number of nodes they should have or on a specific node they should contain.
Attribute-based
• Node/Edge Has Attribute: Attracts nodes/edges that possess a chosen attribute, with
any value.
• Node/Edge Has Attribute With Numerical Value: Attracts nodes/edges based on their
value for a chosen numerical attribute.
• Node/Edge Has Attribute With Substring: Attracts nodes/edges that for the chosen
textual attribute have a value containing a user-provided substring.
44
Magnet-based
• Magnet: Attracts nodes based on what other magnets attract or not, being particularly
useful for set operations such as union and intersection.
• Node Has Connection to Magnet: Attracts nodes that have a connection (edge) to other
nodes that are attracted by a target magnet.
4.1.2 The Boundary Shape
Depending on their needs, users may want to isolate the nodes attracted by a magnet into
a certain region of the workspace. MagnetViz allows them to do that by means of boundary
shapes. A boundary shape is a geometric shape placed around a magnet that delimits a region
where attracted nodes should be. All of these nodes are forced to remain inside the boundary
shape, while non-attracted nodes are kept outside. By using a boundary shape, one can better
understand the attracted nodes’ relations to each other and also how they, as a subgraph, relate
to the rest of the graph.
In the MagnetViz prototype, we implemented boundary shapes as circles with user-chosen
radius and fill color (Figure 4.2). In the magnet’s properties, users can define whether forces
caused by non-attracted nodes will affect those inside the boundary shape or not.
4.1.3 Magnet Intersection
Nodes can be attracted by more than one magnet. We call this a magnet intersection.
When this happens, dashed rings in the colors of each attracting magnet are displayed around
each intersecting node (Figure 4.3).
(a) A magnet with a boundary shape. (b) A magnet with a boundary shape attracting all of node E’sneighbors.
Figure 4.2: Boundary shapes.
45
(a) A node and its two magnets. (b) Two magnets with two nodes in common.Figure 4.3: Magnet intersection.
(a) Bound to the green magnet. (b) Left free.Figure 4.4: Types of behavior of intersecting nodes.
When there is a magnet intersection, users must choose the behavior the intersecting nodes
will assume. These nodes can be bound to a specific magnet or left free. In the first case, if
the binding magnet has a boundary shape, the nodes will act as if they were attracted only by
the chosen magnet, ignoring the attraction forces exerted on them by the others (Figure 4.4a).
In the second case, they will be affected by the forces of all magnets that attract them, but will
ignore the restraints imposed by the boundary shapes (Figure 4.4b).
In our MagnetViz prototype, the behavior of intersecting nodes is defined in the magnet
properties panel. Magnets that have intersections with the selected magnet are listed alongside
checkboxes that indicate whether the commonly attracted nodes should be bound to the selected
magnet or not. The default behavior is to leave nodes unbound.
4.1.4 Magnet Hierarchy
When building a layout using MagnetViz, users may want to create a magnet that acts only
on a subset of nodes that is already attracted by another magnet. This is accomplished by the
46
Figure 4.5: Magnet hierarchy: a magnet and its child.
creation of child magnets, which act only on the nodes attracted by the parent. The connection
between a parent and a child magnet is shown as a dotted line with an arrow in the child’s end
linking it to the parent (Figure 4.5). The intersection between parent and child is handled as
all others and child magnets can have children themselves. A child magnet is created in the
properties panel of its parent magnet. When a parent is deleted, all of its children are as well.
4.2 The MagnetViz Prototype Application
In order to illustrate MagnetViz’s features and concepts and conduct an evaluation cycle,
the prototype of a graph visualization tool was developed. A standard node-link representation
was used, with multiple edges between two given nodes being represented by single edges with
variable edge thickness. Along with the above described features, the prototype also supports
standard interaction and exploration techniques (selection, zoom, pan, etc.) and a simple system
for color coding and labeling of nodes.
For the graph’s layout algorithm, an approach similar to Tunkelang’s (TUNKELANG, 1999)
was used. Tunkelang’s technique is an adaptation of the widely-known Fruchterman-Reingold
algorithm (FRUCHTERMAN; REINGOLD, 1991), producing the same visual results while
reducing its complexity from O(n3) to O(n2). This method was chosen as a basis for the pro-
totype for mostly practical reasons: it generates aesthetically pleasing layouts and is easy to
implement and integrate with MagnetViz. In our version, we added to Tunkelang’s method
a small, user-definable gravitational force that pulls nodes slightly towards the center of the
workspace and used Verlet’s integration method (VERLET, 1967) to keep the physics engine
running all the time in order to dynamically respond to the changes in forces that might occur
while users interact. An extra step was also added to deal with the position constraints imposed
by the boundary shapes. It is important to reinforce that MagnetViz as a concept is independent
of the choice of force-directed algorithm—any other algorithm could be easily used instead of
Fruchterman-Reingold.
47
4.3 The Evolution of MagnetViz
The first prototype implementation of MagnetViz (SPRITZER; FREITAS, 2008) and its
successive improvements were submitted to complete evaluation cycles. Every iteration was
assessed using Lee et al.’s task taxonomy (LEE et al., 2006) and went through heuristic evalua-
tions and tests with expert and non-expert users. Whenever user feedback resulted in changes,
these were evaluated and used as a basis for further refinement and enrichment of the technique.
The latest version of the technique (SPRITZER; FREITAS, 2012) was a result of this process.
Its corresponding prototype implementation also went through an evaluation phase, but this
time with an additional test to evaluate the quality of the generated layouts.
(a) Original layout. (b) A simple attraction.
(c) Magnet intersection. (d) Magnet hierarchy.Figure 4.6: Using the MagnetViz tools on a small graph.
48
4.4 Examples
In this section we show examples of how graphs can be manipulated with MagnetViz. Figure
4.6 illustrates how a small graph (Figure 4.6a) can be manipulated with magnets. In Figure 4.6b
a magnet has been inserted to attract all nodes with degree 3. This magnet’s boundary shape
is visible and configured as to allow inner nodes to be affected by outside forces (i.e., if a
node outside the boundary shape shares an edge to a node that is inside, they will attract each
other). In Figure 4.6c, a second magnet has been added to attract nodes that have a connection
to node n233. Since two of the nodes attracted by the first magnet also fulfill this criterion,
an intersection happens. This intersection is dealt with by binding the two magnets’ common
nodes to the first’s boundary shape. As a result of this, intersecting nodes are kept within the
boundary shape. Finally, in Figure 4.6d, we give Magnet 2 a child magnet that attracts nodes
with degree higher or equal to 10. Notice that this magnet attracts only the nodes that are
attracted by its parent, Magnet 2.
An example of MagnetViz in use with a larger graph is given in Figure 4.7. Figure 4.7a
shows the original layout, while in Figure 4.7b several magnets are used to separate the con-
nected components of the graph according to how many nodes they have.
A more semantically complex example can be seen in Figure 4.8. Here, we show how we
used magnets to reshape the graph of the UFRGS Informatics Institute co-authorship network
to emphasize the computer graphics group and its relationships. Figure 4.8a shows the original
layout of the network, which includes publications by students, faculty members, and external
collaborators. The graph has 438 nodes and 1989 edges, with nodes representing the authors and
edges being their common publications. Color-coding was used, with pink nodes being faculty
members, yellow nodes being students and blue nodes being external collaborators. Figure
4.8b shows the transformed graph: magnets were used to clean out the layout by disentangling
smaller connected components from the main one, and to make the computer graphics group
stand out by pulling it slightly towards the center, making its connections to the rest of the graph
clearly visible.
4.5 Discussion
It is easy to see that using MagnetViz to create or manipulate a layout has important advan-
tages over simply using topology and attribute-based techniques. In contrast to attribute-based
techniques, MagnetViz does not discard the graph’s structural information and uses a visual
49
(a) Original layout.
(b) Magnets used to separate connected components based on their size.Figure 4.7: Using MagnetViz on a larger graph.
50
(a) Original layout.
(b) Using magnets to reshape the graph.Figure 4.8: Transforming the 2009 UFRGS Informatics Institute co-authorship graph to empha-size the computer graphics group.
51
representation that is already very familiar to users (node-link diagrams laid out with force-
directed algorithms). In contrast to typical topology-based visualizations, MagnetViz allows
users to perform a large-scale modification of the layout based on both the graph’s topology
and semantics (in contrast to McGuffin and Jurisica’s more localized technique (2009)). Mag-
netViz’s emphasis on combining topology and semantics through the criteria system is a partic-
ularly significant advantage over other techniques for interactive layout modification, allowing
users to bring about much more meaningful change than simply moving nodes around or fixing
some of them to specific positions.
It is important to note that the quality of the layouts that can be made with MagnetViz de-
pends as much on users as on the technique itself. As such, MagnetViz can be used to generate
meaningful, clean layouts, but it can also be used to produce misleading, cluttered visualiza-
tions. A boundary shape, for instance, can either make a visualization clearer by isolating
attracted nodes, or cause clutter if it is too small for the nodes it contains. This high flexibility
and dependence on user skill can be thus considered both an advantage and a disadvantage.
This duality is also present in GraphCoiffure, as the produced visualizations are direct results
of how users use the tools provided.
For a full evaluation of MagnetViz, see our 2012 extended paper (SPRITZER; FREITAS,
2012), in which we verify the effectiveness of the technique’s visual abstraction and interaction
schemes. The evaluation process included user studies and a thorough assessment against a
graph-specific task taxonomy.
52
5 NODE-LINK VISUALIZATIONS FOR COMMUNICATION
There are many examples of graph visualizations that are used to communicate information
on a computer screen or in print. An interesting set of visualizations for printed media can be
found on the posters sold by the company Pop Chart Lab (POPCHARTLAB, 2014). Among
their many infographics, several consist of beautiful artistic graph visualizations. These graphs
depict topics as varied as kitchenware (Figure 1.13), dog breeds, superpowers (Figure 1.12), the
many varieties of beer, the different types of pasta, hip-hop names, the evolution of different
types of objects (video-games, bicycles, etc.), among others. The visualizations were all made
by graphic designers using graphics authoring software, with the graphs they depict having
probably been laid out entirely by hand.
Other examples can be found among the hundreds of network visualizations available both
online and in print at Visual Complexity (LIMA, 2013; LIMA, 2014). Each of these visualiza-
tions is in some respect unique, be it in how the graphs are visually depicted or in the choice of
a subject. Visualizations of all types are included in this collection: interactive, static, artistic,
designed for the screen, part of museum installations, etc. A common denominator among all
of them, however, is their focus on communication and their attempt to make the graphs not
only meaningful, but also beautiful.
We selected three examples that were specifically designed to tell a story to a general au-
dience. The first is Andrew Odewahn’s visual study of the historical behavior of US senators
(ODEWAHN, 2010). In this study, Odewahn built a social network based on which senators
voted together and showed how this graph changed over time (from 1991 to 2009). For his
visualizations, he colored nodes according to the political parties (blue for Democrats, red for
Republicans, green for independents) and let the (force-directed) layout tell the story, with sen-
ators that voted together the most being visually closer to one another. This work appeared in
print as a chapter of a book about beautiful visualizations (STEELE; ILIINSKY, 2010).
The second example is Teresa Elms’ visualization of the lexical distance among the lan-
guages of Europe (2008), shown in Figure 5.1. This simple, yet effective visualization was
posted by the author on her website. It serves to illustrate many of the decisions that go behind
designing a visualization. In this graph, the nodes stand for the languages and the edges stand
for how similar they are to one another. The graph is laid out in a clear, balanced way. Language
families are made visually distinct from one another by their placement (nodes of the same fam-
ily are placed closer together and some space between the families keep them visually separate
from one another), with annotations giving the name of each family. Family identification is
53
Figure 5.1: Teresa Elms’ visualization of the lexical distance among the languages of Europe(2008).
also made easier by color-coding: nodes belonging to the different families are drawn as circles
filled with different colors. Nodes can be of five different sizes, each representing a range of
number of speakers. As for the edges, the similarity of the languages is encoded as five line
styles (e.g., solid line, dashed, dotted, etc.), each representing a range of values for their lexical
distance. The graph is accompanied by a legend that makes the mapping of node size to number
of speakers and edge style to lexical distance clear to viewers of the image.
Finally, the third example is sociologist Dana Diminescu’s e-Diasporas project, which uses
graph visualizations to show interactions among “migrant sites,” which are websites created
or managed by migrants and/or related to migration in a significant way. Each visualization
shows a specific e-diaspora (e.g., Chinese, French, Jewish, Turkish, Tamil, Hmong, etc.) and is
available both online, on the project’s website (DIMINESCU, 2012a) and in print, on a book-
let/poster hybrid (DIMINESCU, 2012b).
The online version of the e-Diasporas project is made up of several “working papers,” with
one for each e-diaspora. Each working paper includes a video introduction by the responsible
scientist and several visualizations: a main graph showing the entire network and several other
graphs that highlight certain aspects of the network by color-coding the nodes according to tags.
54
Each of these color-coded visualizations is accessed on a page that also shows the distribution
of the encoded tags. From this page, users can also access filtered graphs that show only nodes
that have the given tags. All of a working paper’s visualizations use the same layout algorithm,
with the only differences between them being the colors and visibility of the nodes.
In an interview, Dana Diminescu gave us a good description of how hard it is to create such
visualizations aimed at communication. She and her team created the images by first loading the
graphs they had built into graph editor Gephi (see Section 3.1 for more information on this tool).
For each graph, they applied a force-directed layout and customized some visual properties,
such as the use of curved edges and the mapping of degrees to node radii and tags to colors.
The graphs were then exported as SVGs and given to a team of graphic designers, who improved
them on Adobe Illustrator and integrated them into a larger printed document. Examples of the
individual graphs can be seen in Figure 5.2, while two pages of the poster/booklet are shown in
Figure 5.3.
The end-results looked good, but Dana and her team felt somewhat frustrated. The chosen
layout algorithm caused some problems for the print version due to the limited space available
for each graph: some nodes ended up too far from the rest of the graph and larger graphs often
needed to be reduced or cropped to fit into their areas. Some layouts were also very dense,
making it difficult for viewers to understand the structure of the graphs. More problems came
from the impossibility of planning graph layouts for their specific page layout: descriptive text
often had to be placed over parts of the diagrams and there was frequently either too little or too
much whitespace.
Beyond these specific technical issues, it seemed the main frustration came from a difference
of perspective and an inability of going back and forth between design stages. The graphic
designers had most likely focused on more global visual communication aspects, while the
sociologists had mainly focused on the legibility of each individual graph.
According to Baur (BAUR, 2013), a graphic designer tries to solve problems of identifica-
tion, orientation, and information, and, to this end, uses the design of visual elements just as
much as any other form of creative expression that is necessary for the production of a coher-
ent presentation. Here, identification concerns the more or less immediate comprehension of
the major function or purpose of a given object (in this case, the printed document was sup-
posed to communicate information about social sciences); orientation concerns the signs on
the surface of that object that communicate how the object works (in this case, the way in which
the document should be read); and information concerns the content itself, i.e., what is be-
ing communicated (in this case, the “information” conveyed by the graphs and the text). Put
55
Figure 5.2: Close-up of two e-diaspora graphs as seen on the print version of Dana Diminescu’se-Diasporas project (2012b).
56
Figure 5.3: Two pages of the print version of Dana Diminescu’s e-Diasporas project (2012b).Each page is organized as a grid of e-diaspora graphs.
57
simply, these three levels could be respectively translated into the questions: “What is this?”,
“How does it work?”, and “What does it mean?” This reveals that, from a graphic design per-
spective, there is a clear hierarchy among these levels, prioritizing identification and orientation
over information. This conflicts directly with the hierarchy considered by researchers, which
emphasizes information. In the case of e-diasporas, this clash of perspectives was exacerbated
by the fact that once the work was done, it was impossible to go back, since the cost would
have been too great (both time-wise and expense-wise), as the diagrams would have had to be
remade almost from scratch.
In this work, we focus on bridging these different perspectives. Our main motivation is to
develop a tool that will help researchers and other content providers modify a static node-link
diagram at any moment to bring forward the information aspect of the communication, while
allowing graphic designers to bring forward the identification and orientation aspects of the
final document. As a first step in this direction, in the next section (Section 5.1) we present
a breakdown of these visualizations into their essential elements. Based on this and on our
analysis of the creation process behind these images, we derived a set of high-level tasks that
users may need to perform in order to create them (Section 5.2).
5.1 Elements of static node-link graph visualizations
To better understand the components of communicative node-link diagrams, we surveyed
203 diagrams, sorting them into categories such as journalistic infographics, fun infographics,
works of art, hand-drawn, etc. Despite the graphs’ variety, we were able to identify in them six
distinct but interconnected components which we relate to the different levels of graphic design.
1. Information
The data is the graph that is being visualized. This includes not only its topology (i.e.,
its nodes and edges), but also nodes’ and edges’ associated attributes. These attributes
are part of what gives meaning to the network and often have implications in its visual
encoding. In an academic co-authorship graph, for instance, node attributes could in-
clude author information (e.g., name, affiliation, etc.) and edge attributes could include
information about the papers they have co-written (e.g., title, conference, etc.).
The message of a visualization can be defined as the information it should communicate
to its audience. The message can be anything the author wants it to be. It can be factual
(i.e., stick to the data), higher-lever (i.e., report non-trivial insights), or even go beyond the
58
data, ignoring it altogether (e.g., for use in art and design) or being purposely inconsistent
with it (e.g., to misinform the audience about the data).
2. Orientation
The layout of a node-link diagram consists of the arrangement of nodes in space and
how edge lines or curves are routed (i.e., the path of the edge from one node to another).
Coming up with good layouts is a formidable problem and is the subject of the field of
graph drawing. Many layout algorithms and techniques have been proposed (BATTISTA
et al., 1999; TAMASSIA, 2014) and researchers have also investigated how effective
these are from a human-cognitive point of view (PURCHASE; COHEN; JAMES, 1996;
PURCHASE, 1997; PURCHASE; PILCHER; PLIMMER, 2012; WARE et al., 2002;
ARCHAMBAULT; PURCHASE; PINAUD, 2010).
The presentation aids are accessory visual elements that enhance the diagram’s commu-
nicative power (e.g., annotations, legends, grids, convex hulls, etc).
3. Identification
The visual attributes define the appearance of the elements of the diagram (e.g., colors,
node shapes, line styles, label fonts, etc.). Along with the layout, they are what gives a
diagram a distinct style.
The communication context is how the diagram will be used. This includes considera-
tions such as the medium in which it will appear (e.g., book, billboard, t-shirt, website,
etc.), its purpose (e.g., an illustration on a news article, a whole-page infographic poster,
a decorative work of art, etc.), and its intended audience (e.g., scientists, general public,
children, etc.).
There may be intersections between these components, as communicative node-link dia-
grams are dependent on both the message and the communication context, which in turn are
dependent on the layout and the visual attributes. Diagrams meant for print, for instance, may
be subject to restrictions of space and color while having to conform with aesthetic require-
ments meant to give them a specific “look-and-feel” (e.g., to make it congruent with the other
elements of a page or to give it a desired visual identity).
The way each component affects the visualization and the dependencies that the elements
can have on one another can be clearly seen in the examples described in the previous section.
In Odewahn’s visual study of the historical behavior of US senators (2010), for instance, it is
easy to see how data (historical votes of US senators) and message (how similar are the sen-
ators’ votes and how this changed over time) are tightly connected to layout (force-directed
layouts that position similar-voting senators closer together) and visual attributes (the represen-
59
tation of senators as circles, the visual mapping of their parties to their respective colors, the
choice to draw edges as straight, solid black lines). The e-Diasporas project is also interesting
for showing how much the constraints and requirements imposed by the communication context
can affect layouts (in the print version, due to limited space and the impossibility of modifying
the automatically-generated layouts, graphs were sometimes partly superimposed by blocks of
text or had to be cropped or reduced). The lexical distance visualization (ELMS, 2008), in turn,
is particularly didactic: while quite effective on the information and orientation levels, it clearly
fails on the interpretation level. Indeed, data and message are made quite clear, as nodes repre-
sent languages, which are grouped into visually distinct “families,” and edges show how similar
languages are to one another. The layout allows for simple visual exploration of nodes and
links, and labels and a legend provide clear presentation aids. However, the nature of the data
is quite abstract (languages) and the visual attributes do not convey much semantic information
about it. A reader who only looks at this graph for a short instant (i.e., without taking the time
to read all the labels) will most probably not understand what the topic is. Furthermore, the
“look and feel” of this graph is quite generic and would need some additional styling to suit a
specific communication context. Finally, integrating this diagram in a specific document would
require shifting all other elements in the document to fit around its overall rectangular shape,
which may be challenging and sub-optimal when designing a full page layout.
Essentially, the difference between designing node-link visualizations for communication
and exploration/analysis comes from the consideration (or not) of the orientation and identifi-
cation attributes. As discussed in the introduction (Chapter 1), though, these considerations do
not need to emanate from the same person—that is, the work can be collaborative.
5.2 High-level tasks for the creation of communicative node-link diagrams
Based on our analysis of how static communicative node-link diagrams are usually created,
on our study of the 203 graphs, and on our breakdown of these graphs into their essential
components, we derived a set of high-level tasks that users may need to perform in order to
create such diagrams. Some of these tasks can be performed with image authoring programs
and graph/diagram editors, while others are unique to static communicative node-link diagrams
and are not directly supported by these programs. The tasks are:
• t1: Apply a graph layout algorithm on the diagram.
• t2: Manipulate the diagram’s layout to make it conform to the communication context
60
and to ensure it has the intended aesthetics and adequately communicates the intended
message.
• t3: Manipulate the diagram’s visual attributes to make it conform to the communication
context and to ensure it has the intended aesthetics and adequately communicates the
intended message.
• t4: Reproduce the style of another diagram (e.g., to create a series of visualizations with
the same “look-and-feel”).
• t5: Map information components into orientation components (i.e., use the data and the
message to affect both the diagram’s layout and visual attributes).
• t6: Add presentation aids that make the diagrams easier to read (e.g., annotations, high-
lights, convex hulls, visual landmarks, legends, grids, background images, etc.).
There is no single application that supports all of these tasks by itself and, as seen in the
related work (Chapter 3), none has been designed to even work as a part of a workflow specific
to the design of custom static node-link visualizations for communication. The design of such
visualizations has remained highly artisanal, with the typical workflow consisting of an often
not-so-smooth combination of different tools and processes, each covering to varying degrees
one or more of the elicited requirements. As described in the Introduction (Chapter 1) and seen
in the examples detailed in the beginning of this chapter, this approach is potentially highly
limiting and inefficient.
With the above tasks in mind, we designed a set of techniques for creation and manipula-
tion of static communicative node-link diagrams and implemented them as a proof-of-concept
prototype named GraphCoiffure, which is intended to bridge the gap between graphics editors
and graph drawing software. GraphCoiffure is introduced and detailed in the following chapter.
61
6 GRAPHCOIFFURE
As discussed in Chapters 1 and 5, the process of designing custom static node-link graph
visualizations for publication can be cumbersome and time-consuming, as there are currently
no applications that have been made specifically for this purpose. In Chapter 5, we identified
the basic elements of these visualizations and derived from these elements a set of high-level
requirements that an application needs to meet in order to adequately support the design of these
images. We hypothesized that these elements and requirements can be used as a basis for the
creation of applications, tools, and techniques that are tailor-made for this purpose, simplifying
and speeding up the process and potentially providing users (graphic designers, researchers,
journalists, among others) with a wider palette of tools. To test this hypothesis, we decided
to build our own prototype application aimed at supporting the creation and editing of custom
static node-link graph visualizations.
Creating visualizations for communication and publication is primarily a work of graphic
design, making graphic designers our primary target users. As such, our goal was to smoothly
integrate support for the creation and editing of node-link diagrams into these users’ typical
workflow. Designers very often work with vector graphics editors such as Adobe Illustrator.
For this reason, our initial idea was to create our prototype as a plugin for Illustrator, bring-
ing graph-awareness and graph-based operations to this application’s powerful imaging tools.
Unfortunately, this proved to be too technically impractical due to the difficulty of dealing
with Illustrator’s plugin architecture, which exposed limited functionality and was unneces-
sarily complicated to use. Since our aim was to illustrate our approach rather than make a
full-fledged application, we decided to change our strategy, creating instead a standalone pro-
totype that would serve as a bridge between graphics editors and graph drawing and editing
software. Our prototype, which we named GraphCoiffure, aimed at being an extra step that
would give designers the layout and visual attribute flexibility they lack in graph editing and
drawing software while minimizing the amount of changes and refinements that would have to
be done by hand in a graphics editor that has no data-awareness (SPRITZER et al., 2015).
Most graph editors and graph drawing software can export graphs to standard formats such
as dot and GraphML. These exported files often contain layout data (node positions, descrip-
tion of the edge curves) and even descriptions of visual attributes (node shapes and colors, edge
drawing style, edge arrow shape for directed graphs). The idea behind GraphCoiffure was that
users would be able to import these graphs and beautify them, with graph beautification be-
ing defined as touching up a node-link graph visualization to enhance its communicative power
62
or make it conform to a desired aesthetics. Here, we use the term “aesthetics” in a broader
sense than what is usual in the graph drawing community (BATTISTA et al., 1999; WARE et
al., 2002; BENNETT et al., 2007; PURCHASE et al., 2010)—our concern is not only to find
nice-looking, easy to read positions for nodes, but also to address the entire “look-and-feel” of a
diagram. This requires considering the different visual attributes that compose a diagram (e.g.,
node shapes, colors, label fonts, etc.). In GraphCoiffure, users can beautify a graph’s node-link
diagram by working with all of its three components (orientation, information, and identifica-
tion), modifying the layout and visual attributes to better reflect the message and achieve the
desired aesthetics.
6.1 GraphCoiffure’s concept
The GraphCoiffure prototype was designed as a standalone application that can create a
bridge between graph drawing and editing software and image authoring applications. Com-
bining tools for interactive graph layout manipulation with CSS-like styling possibilities, it sup-
ports both creation and modification of node-link visualizations, integrating automatic layout
algorithms with manual authoring and allowing for an extensive manipulation of visual vari-
ables, giving users extra freedom to convey information, messages, and even emotion. Graph-
Coiffure preserves visual mappings and lets users make modifications based on the semantics of
the graphs. It also supports importing and manipulating SVG images and using these images as
the nodes’ shapes, reducing the time and effort that has to be spent touching up the final image
on graphics editors before it is ready for use. Another feature of GraphCoiffure is the possibility
of importing a page layout schema, which allows users to design or touch up a graph to ensure
that the visualization will work with the layout of the page in which it is intended to appear. It
is important to note that GraphCoiffure preserves all visual mappings, making it easier for users
to perform topology, attribute, or context-based modifications.
6.2 Workflow using GraphCoiffure
We now describe what would be a typical workflow of a visualization designer using Graph-
Coiffure to beautify a graph. This workflow includes steps that are taken before GraphCoifure,
in GraphCoiffure, and after its use. The steps described below are not necessarily linear—users
may go back-and-forth between them or conduct them in a different order.
63
Before GraphCoiffure
• Create/extract the graph
Users export the graph as a GraphML file from a third party software (e.g., a graph/dia-
gram editor).
• Design a page layout
Users decide where each element will be placed on the publication’s page. This includes
the graph visualization itself as well as other images, text, and white space. If the page
layout is grid-based, users may opt to create a page layout schema as a specially-formatted
SVG file that can be imported into GraphCoiffure and used to guide the beautification to
ensure that the visualization will work with the layout of the page in which it will appear
(see Section 2.3 for more on page grids and section A.2 for more on these SVG files).
• Design node shapes
By default, GraphCoiffure represents nodes as circles. If desired, however, users may
create their own representations in their preferred graphics editor and export them as
SVGs that can be used in GraphCoiffure. Visual properties of these SVG images can
be altered within GraphCoiffure using its CSS-like styling language and the XML ids of
these images’ components.
In GraphCoiffure
• Import the graph
Users import the graph from the GraphML file. If the file contains layout information
(i.e., node positions), the graph is drawn using this layout. If not, a default force-directed
layout is used. When first loaded, the default stylesheet is applied, drawing nodes as blue
circles and edges as simple black lines.
• Define the visual attributes
Users can change the way nodes and edges look by editing or importing a GraphCoiffure
stylesheet. These stylesheets are based on the standard CSS stylesheets, having a similar
syntax and functionality, but also some extra features that are specific to GraphCoiffure.
The stylesheet system is described in Section 6.3.1 and thoroughly detailed in Section
A.3.
• Import the page
Users can import into GraphCoiffure the page layout schema they created and use it as a
guide to make sure their visualization will work well on their page. Section 6.3.7 shows
64
how this can be done while Section A.2 provides further details.
• Touch up the layout
When first imported, a graph is drawn using either the layout information contained in
its corresponding GraphML or a default force-directed layout algorithm. Once the graph
is loaded, users can manipulate its layout in many ways: they can interactively deform
subgraphs (i.e., stretch and rotate them), apply layout algorithms on specific subgraphs, or
even use physics-based tools to completely reshape the layout. Section 6.3.3 shows how
this can be done, while Section A.4 provides specific details on GraphCoiffure’s tools for
layout manipulation.
• Add presentation aids
In the current prototype, annotations are the only type of presentation aid directly sup-
ported by GraphCoiffure. Annotations can be bound to the graph or to a group, with
its position being always relative to whatever it is bound to. More on GraphCoiffure’s
support for presentation aids can be seen in Sections 6.3.2 and A.5.
• Export the diagram
Once users are happy with the diagram, they can export it as an image file that can be
placed on a page or further enhanced, if necessary. Currently, GraphCoiffure exports the
images as SVG files.
After GraphCoiffure
• Add finishing touches
GraphCoiffure not being a full-blown graphics editor, it may be sometimes necessary to
further refine the visualization on a graphics editor. These enhancements can be of any
nature—from purely aesthetic (e.g., special effects, backgrounds, etc.) to functional (e.g.,
legend, grid, etc.).
• Placing the image on the page
After users are done with their visualization, they place it on its alloted space on the page
in which it will be published.
6.3 Touching up a graph with GraphCoiffure
We illustrate GraphCoiffure’s features by describing our personal reproduction of Theresa
Elms’s lexical distance graph (ELMS, 2008) (described in detail in Chapter 5 and shown again
65
Figure 6.1: Visualization of the lexical distance among European languages, by Teresa Elms(ELMS, 2008)
in Figure 6.1. From now on, we will refer to this graph as the lexi-graph. Despite its small
size, this graph encodes a lot of information into different visual attributes. This makes its
reproduction a very interesting tool to show how GraphCoiffure can be used to beautify a node-
link visualization.
We began our reproduction by recreating the original dataset, a graph of 43 nodes represent-
ing languages and 94 edges representing their lexical distance. Node attributes include language
family, name, abbreviation, and number of speakers. Edges only have one attribute, the lexical
distance. We also extracted the layout from the original image, obtaining the positions of each
node. This graph was stored as a GraphML file that can be read by GraphCoiffure.
When first imported into GraphCoiffure, the graph keeps its original layout and uses Graph-
Coiffure’s default visual attributes (as shown in Figure 6.2a). Nodes appear as blue circles with
black borders and edges as solid black lines. Node labels display node ids and are drawn in
black.
6.3.1 Using stylesheets to define visual attributes
GraphCoiffure uses a CSS-like stylesheet system to define the look of nodes, edges, and
presentation aids. Users can customize visual attributes such as node shape, color, size, stroke
patterns, fill patterns, and fonts. We chose this approach instead of a more UI-based one because
66
Swe
Ukr
Ice
Fa
Ga
Cat
Lit
Pro
Dut
Hun
Pol
Bok
Por
Ger
Bre
Rm
NN
Spa
We
SrbRom
Dsh
Blr
Srd Svk
Alb
Ma
Cro
Rus
Slo
Fin
Grk
Ir
Lat
Ita
Bul
Fre
Eng
Cze
Fri
Glc
Sr
Est
(a) With GraphCoiffure’s default stylesheet.
Ga
Rom
Por
Est
Fa
Srd
Ita
Ice
Ukr
Dut
Alb
Pro
Spa
Bre
NN
Svk
Srb
Slo
Rus
Lit
Cro
Swe
Lat
Dsh
Ma
Ger
Blr
Fre
Glc
Fri
Sr
Eng
Cze
Fin
Bok
We
Rm
Cat
Grk
Bul
Ir
Hun
Pol
Celtic
Germanic
Finno-Ugric
Greek
Romance Albanian
Baltic
Slavic
(b) With a stylesheet reproducing the lexi-graph’s original style.Figure 6.2: Reproducing the lexi-graph with GraphCoiffure.
of the high expressive power and reproducibility of stylesheets. These effectively help with
tasks t3, t4, and t5, and are immediately accessible to users familiar with CSS, like graphic
designers. However, for other users, we acknowledge there may be a short learning curve.
This approach is similar to Pietriga’s Graph Stylesheets (GSS)—a stylesheet language for
node-link representations of RDF (Resource Description Framework) models of Semantic Web
data (PIETRIGA, 2006). However, GraphCoiffure stylesheets are based on standard CSS, with
a similar syntax and functionality; they also include several extra features, like the possibility to
directly map data attributes to visual variables (e.g., number of speakers to color or size/scale)
and to use topology and data-based comparison operators in a ruleset’s selector to specify which
nodes or edges will be affected (e.g., to make nodes of Romance language with over 7 million
speakers green). The shape of nodes can also be modified with user-provided SVG images (if
users don’t specify a node shape, a default blue circle is used). Finally, we chose to keep the
manipulation of visual attributes separate from that of the layout, as nodes and edges can be
67
required to keep the same “look and feel” across different diagrams (e.g., in a series of related
graphs, such as different “pictures” of a network evolving over time), while layouts tend to be
very specific to individual graphs.
Our styled reproduction of the lexi-graph is shown in Fig. 6.2b. The stylesheet we used took
less than 20 minutes to write and contains less than 100 lines of code—despite the significant
amount of information that needed to be encoded. The process was very straightforward: we
created rulesets for all nodes, for language family names, for ranges of number of speakers,
for ranges of lexical distances, and for the font of the annotations. To give an idea of how
GraphCoiffure’s stylesheets work, we now provide some details into this process.
We began by writing the rulesets that affect all the nodes. In the original image, nodes
are represented by circles, so we kept GraphCoiffure’s default node shape, only setting its pen
width to 0 in order to remove its border. We also defined the font and alignment of the labels.
The code below shows how this was done:
s e l e c t o r node
{
shape : " d e f a u l t _ c i r c l e " ;
l a b e l −f o n t−f a m i l y : " Cen tu ry G o t h i c " ;
l a b e l −v e r t i c a l −a l i g n m e n t : C e n t e r ;
l a b e l −f o n t−s i z e : 1 0 ;
}
s e l e c t o r d e f a u l t _ c i r c l e
{
pen−wid th : 0 ;
}
In the lexi-graph, each language family is encoded as a different node color. In some fam-
ilies, labels are also drawn in white, while in others they are in black. We reproduced these
encodings with rules like the one below:
s e l e c t o r [ f a m i l y =" Romance " ] d e f a u l t _ c i r c l e
{
brush−c o l o r : # fc9b68 ;
l a b e l −c o l o r : b l a c k ;
}
68
In the original image, nodes can be of five different sizes that represent ranges of numbers
of speakers. For each range, then, we create a rule that scales the respective circles. How much
each category should be scaled to match the original image can be quickly determined by trial
and error. Depending on the size of the node, the font size of the labels also has to be reduced.
The example below shows the rule for languages with between 300,000 and 3,000,000 speakers:
node [ s p e a k e r s >300000 , s p e a k e r s <=3000000]
{
s c a l e : 1 . 3 ;
l a b e l −f o n t−s i z e : 8 ;
}
After styling the nodes, we moved on to the edges. The languages’ lexical distances are
divided into five ranges that are visually mapped as five different dash patterns. To reproduce
this, we did it as in the mapping of the speakers, creating a rule for each range, like the one
below:
edge [ d i s t a n c e >26 , d i s t a n c e <36]
{
pen−s t y l e : CustomDashLine ;
pen−dash−p a t t e r n : "−−−−−____ " ;
}
6.3.2 Annotations
GraphCoiffure supports annotations as presentation aids (t6). These are small blocks of text
that can be placed anywhere on the workspace and styled with the stylesheet system. Annota-
tions can be attached to a graph as a whole, or to specific node groups—when a group is moved
or deformed, the annotation’s position is updated accordingly.
To finish our reproduction of the lexi-graph, we added the annotations corresponding to each
language family name. Our finished image can be seen in figure 6.2b. It is important to note
that the original image (Figure 6.1) also includes a legend, which would also be considered a
presentation aid. The GraphCoiffure prototype doesn’t yet include support for legends, so one
would have to be added later with an imaging tool, such as Illustrator or Photoshop.
69
6.3.3 Manipulating the layout
Besides standard click-and-drag actions, GraphCoiffure has many tools for layout manipu-
lation that were designed to help with t1, t2, and t5. These tools are divided into two categories:
node group-based and physics-based. Many of them are based on selections, so we will begin
by explaining how this can be done in GraphCoiffure.
6.3.4 Selection
GraphCoiffure supports three types of node selection: manual, topology-based, and attribute-
based.
Manual selections are the standard click-to-select, control-key + click to add selections, and
click-and-drag to activate rubberband selections. Filters can also be used to target specific types
of objects (e.g., only nodes, only edges, etc.).
Topology-based selections take two steps: users first manually select a group of nodes, then
choose a topology-based operation from a menu (select neighbors, add neighbors to the current
selection, select connected components).
Attribute-based selections use panels to select nodes or edges based on data attributes and
topological properties (e.g., degree, connected component, etc.). These panels show nodes and
edges in a table that can be filtered—this makes it easy, for instance, to select all languages of a
given family in the lexi-graph. Selection panels are described in detail in Appendix A.
6.3.5 Node-group-based manipulation
To make localized layout manipulation easier, a node group can be created from a selection
of nodes. Groups are represented by light gray bounding boxes around nodes, with a name
(given upon creation) displayed at the top-left corner. Users can move groups by clicking and
dragging and can stretch and rotate them by clicking and dragging on manipulator handles.
Stretching consists in a uniform or non-uniform scaling of the nodes’ positions, while rotation
rotates their positions around the center of the group’s bounding box. The graph itself is treated
as a special type of node group that can also be scaled as a whole (users can toggle the option to
scale the whole graph or only node positions on a menu). Figure 6.3 demonstrates node group
deformations. Note that edge groups can also be created, but they are not used for layout mod-
70
(a) Original layout. (b) Stretched horizontally (c) Stretched vertically (d) RotatedFigure 6.3: Node group deformations of nodes representing Germanic languages.
(a) Circular layout (b) Spectral layout (c) Force-directed layoutFigure 6.4: Using physics-based tools on the lexi-graph
ification. However, both edge and node groups can be referenced in the previously described
stylesheets.
Users can also modify node groups with layout algorithms, like random, circular, spectral,
and force-directed (Figure 6.4). These standard algorithms were chosen because they were
readily available in NetworkX (HAGBERG; SCHULT; SWART, 2008)—the library we used
to implement GraphCoiffure (see implementation details on Sections ?? and A.7)—and we
considered them enough for our proof-of-concept prototype. Other algorithms can be easily
added.
6.3.6 Physics-based tools
GraphCoiffure includes an interactive force-directed layout algorithm and two physics-
based tools for manipulation: a magnet and a repeller.
The interactive algorithm is a variation of Fruchterman-Reingold (FRUCHTERMAN; REIN-
GOLD, 1991) that keeps a physics engine running until explicitly stopped, making the entire
graph respond to changes that happen when nodes are moved. This can be useful to “model”
or “smooth out” a layout and can be applied on the entire graph or on a chosen node group
(Fig. 6.5c). This particular algorithm was chosen due to its straightforward implementation
71
(a) A magnet in action. (b) A repeller being used on theGermanic language nodes.
(c) Interactive force-directed lay-out applied on about half the nodesof the lexi-graph.
Figure 6.5: Applying layout algorithms on a node group
(the prototype being merely a proof-of-concept, scalability was not a concern).
Magnets are based on the MagnetViz concept (SPRITZER; FREITAS, 2012). They ap-
ply an attraction force on a selection of nodes, which reshapes the layout (Figure 6.5a). This
can be used to create a desired aesthetic, to emphasize a particular subgraph, or even to clean
up a diagram (e.g., disentangle subgraphs/connected components), and is particularly powerful
when combined with an interactive force-directed layout. Users can place magnets anywhere on
the workspace and freely move them around, while activating or deactivating them by double-
clicking on their icons. This changes the color to reflect their status (green for active, red
otherwise). The strength of a magnet’s attraction force can be set with menu options and key-
board shortcuts. Finally, when nodes move towards a magnet, the underlying physics engine
ensures that they do not collide with each other.
Repellers move nodes away from an area delimited by the repeller’s radius; they work both
as a brush used to unclutter dense regions and as a tool to establish “no-go” zones in the
workspace (Figure 6.5b). A repeller’s radius can be determined with menu options and key-
board shortcuts and appears as a dashed black circle around its icon. Like magnets, repellers
can be activated and deactivated by double-clicking.
6.3.7 Page layout schemas
Whatever the final format (e.g., book, poster, website, etc.), node-link diagrams often appear
as one of several elements on a page. This communication context may impose restrictions on
the size and shape of the graph layout. To help users plan a graph layout for a page layout (task
t2), GraphCoiffure lets users import page layout schemas.
A page layout schema is a design aid that can include a grid and placeholders for the page’s
different visual elements. The placeholders can be fixed (displayed in red on the workspace),
72
representing elements on the page that must remain in position; or movable (in blue), represent-
ing elements that can be repositioned if necessary. Layout schemas are loaded from formatted
SVG files, in which grids are made up of line objects with a “grid” class (i.e., class=“grid”);
and fixed and movable placeholders are rect objects with “fixedBlock” and “movableBlock”
classes, respectively. The first three usage scenarios in Section 7.1 illustrate how page layout
schemas can help users plan out a diagram.
6.4 Implementation
??
GraphCoiffure was implemented as a standalone prototype using Python 3.3 (more details
about its implementation can be seen in section A.7). We chose to implement it this way instead
of as a plugin for extensible graph visualization frameworks/systems such as Auber’s Tulip
(2003) or Shannon et al.’s Cytoscape (2003) for both technical and usability-related reasons.
Since GraphCoiffure was designed to be a bridge between graph drawing software and
graphics editors, it was important for it to smoothly go from one to the other. Users should
be able to create a node shape in a graphics editor, for instance, and seamlessly use it in Graph-
Coiffure, where aspects of this image, such as its size and colors of its individual elements,
could be manipulated according to the graph’s semantics and the users’ desires. When satis-
fied with the modifications made in GraphCoiffure, users would need to export the graph as an
image that could be further enhanced in graphics editors. This need to work with individual
elements of the images made the use of vector graphics an essential requirement for Graph-
Coiffure. The above mentioned graph visualization frameworks and systems have very limited
support for vector graphics formats such as SVG, making the implementation of GraphCoif-
fure as a plugin technically too complicated. GraphCoiffure being above all a proof-of-concept
prototype, a simpler implementation would suffice.
Another issue that weighed against implementing GraphCoiffure as a plugin is that the above
mentioned graph visualization frameworks and systems were were conceived for graph explo-
ration and analysis. Although they can export images, they were not really designed as tools
for the production of diagrams to be used in publication. This is reflected directly in their user
interfaces, which are naturally more aimed at supporting on-screen analysis and exploration
of the graphs. We felt that our main target users—graphic designers—would benefit from a
simpler user interface that better addressed their specific necessities.
We did not design GraphCoiffure for scalability, so in its current state it cannot be used
73
to generate visualizations for graphs of more than a few hundred nodes and edges. This isn’t
really a problem, though, as our focus was more on printed visualizations, which have a natural
limit on the amount of data that can be depicted due to the finite and non-interactive nature of
physical surfaces.
6.5 Limitations
Being a proof-of-concept prototype, GraphCoiffure naturally has some limitations, not hav-
ing some features that would add to it from a practical point of view. These features include
support for directed graphs, curved edges, options for edge routing, alternative edge draw-
ings, metanodes, CSS gradients, history management, and the possibility of loading graphs
from formats other than GraphML (Graphviz’s dot, in particular). In terms of its requirements,
GraphCoiffure currently provides only one presentation aid (annotations). GraphCoiffure also
lacks a way to select nodes and edges based on more complex queries (e.g., select neighbors
of a given node, select edges to nodes that have a certain property, etc.), as done in MagnetViz
(SPRITZER; FREITAS, 2008; SPRITZER; FREITAS, 2012).
It is also worth mentioning that GraphCoiffure as a concept has an inherent limitation when
it comes to reuse: although the stylesheet system makes it easy to use the same visual attributes
on many graphs, layout modifications cannot be reproduced so easily. Other unsolved problems
related to layout include reconfiguring a layout in a way that it remains recognizable while
conforming to specific requirements (e.g., fitting into a given shape or morphing to another
layout style while still being recognizably the same graph).
Another important limitation of GraphCoiffure concerns the workflow itself. As described
in Section 6.2, users provide their graphs (with or without a layout) as input to GraphCoiffure,
which exports them as images to be further enhanced in graphics editors. Ideally, users would
be able to go back and forth between GraphCoiffure and the image editor. This is a considerable
problem, since it would involve somehow extracting the editable graph visualization from an
image that has lost its data mappings (i.e., what was once a node, for instance, became simply
a circle in the conversion from GraphCoiffure to image). One way to get around this problem
would be to add features to graphics editors that would let them add or keep metadata to SVG
files which would then be used by GraphCoiffure to extract the enhanced graphs—this, however,
is outside the current scope of GraphCoiffure.
74
7 EVALUATING GRAPHCOIFFURE
7.1 Usage scenarios
To illustrate what can be done with GraphCoiffure, in this section we show how it can be
used in practical situations with four different case studies: the adaptation of a visualization’s
layout to make it work on a given page, the reproduction of a visualization’s style and its appli-
cation on another graph, and the creation of two visualizations from scratch.
7.1.1 Adapting the lexi-graph for the page
To better show what can be done with GraphCoiffure, we will go beyond Chapter 6’s repro-
duction of the lexi-graph by adapting it for use in a printed page. For this exercise, we designed
a simple page template on Adobe Photoshop (seen in Figure 7.1a) and, based on it, created a
layout schema as a specially-formatted SVG file that can be loaded into GraphCoiffure (shown
in Figure 7.1b).
When the schema is loaded along with the graph, it is evident that adjustments have to be
made: the graph is too small for the page and it is positioned on its top-left corner, overlapping
the area dedicated to the title (the upper red block). The first step, then, is to move the graph to
its alloted area and resize it. In Figure 7.2 we can see that there is still too much white space
at the bottom of the graph. To fix this, we use a transform-based layout manipulation tool to
increase the vertical space between the nodes, making better use of the area (Figure 7.3). To
make the image more dynamic, we can also horizontally stretch the graph layout (only node
positions; the image is not deformed) until its a little wider than the grid lines on the left and
right. After making these simple manipulations, the graph is ready to be exported and inserted
into the page. The results can be seen in Figure 7.4.
To illustrate how to work with a more complex page design, we added to the schema a mov-
able element that occupies the same area of the page as the graph (the blue block in Figure 7.5.
This element can be anywhere within that area, but it should also not overlap or be overlapped
by the graph – as happened with the descriptive texts on some e-Diasporas visualizations (see
Chapter 5). To achieve this, it is necessary to perform more extensive manipulations. Figures
7.6 and 7.7 show visualizations made based on this schema. To produce the layout of Figure
7.6, we first used GraphCoiffure’s attribute-based selection system to create a node group con-
taining all nodes representing languages of the Slavic family. We then moved this group above
75
(a) Page template (b) Page layout schemaFigure 7.1: From page template to page layout schema.
Figure 7.2: Moving and scaling the graph.
76
Figure 7.3: Adjusting the layout.
the blue element and scaled and rotated it to adjust its positions. Finally, we manually adjusted
the positions of the nodes surrounding it. For Figure 7.7, we created node groups for most of
the families and moved, rotated, and scaled them into a satisfactory layout. We also applied a
circular layout to the node group of the Celtic family, giving this subgraph a more square-like
shape.
7.1.2 Reproducing a style
The infographic in Fig. 7.8a was made by former company Loku; it shows different types
of coffee and the different personalities of the people who drink them. In this subsection,
we describe how we reproduced this diagram’s style and applied it to the lexi-graph using
GraphCoiffure.
As mentioned in our proposed workflow, we began outside GraphCoiffure by creating a page
layout schema based on the coffee diagram’s page. We also created the node shape SVGs in
Adobe Illustrator, reproducing the two ways nodes are drawn. We then loaded our reproduction
of the lexi-graph in GraphCoiffure and wrote a stylesheet that used our recreated node shapes.
77
Lorem Ipsum Nulla Ac Ante
Lorem Ipsum
Lorem ipsum dolor sit amet, consec-tetur adipiscing elit. Morbi id dolor porttitor, rutrum lectus fringilla, male-suada erat. Mauris sit amet tristique dolor. Fusce ut dolor id eros dignissim iaculis eu eget nisi. Sed nec risus sit amet eros dignissim volutpat. Nam blandit, nunc in pretium porttitor, elit ante cursus ligula, id volutpat tortor dui vitae massa. Suspendisse ut sagittis mi. Duis mattis tincidunt tellus imperdiet rutrum.
Nulla et diam mattis, tempus tortor non, pulvinar diam. Sed mollis sit amet nulla ut sollicitudin. Suspendisse con-vallis consequat tristique. Nulla inter-dum arcu a libero fringilla tristique. In risus lorem, viverra ut velit imperdiet, ultrices viverra augue. Maecenas fermentum tortor felis.
Vestibulum ante ipsum primis in fau-cibus orci luctus et ultrices posuere cubilia Curae; Nullam vulputate quam et quam varius tempor
Figure 7.4: The finished page.
78
Figure 7.5: Page layout schema with a movable element (in blue).
Figure 7.6: Layout made using GraphCoiffure groups.
79
Figure 7.7: Layout made using node groups and the application of a circular layout algorithmon a subgraph.
The “personality” shape was applied to nodes with a degree greater than 6, while the “coffee
type” shape was applied to the others. This stylesheet contains less than 30 lines of code and
was written in about five minutes. However, while the resulting diagram (Figure 7.8b) looks
promising, more touching-up is needed: several nodes overlap and the overall shape of the
diagram (i.e., the layout and the page) is still far from the original infographic’s.
To adapt the layout, we loaded our page layout schema to serve as a reference. We then
stretched and rotated the graph to make it fit the page using the node group deformation tools
described in Chapter 6. After that, we created node groups for each language family and de-
formed them using a repeller to eliminate overlaps and to unclutter dense regions; we occasion-
ally had to manually move individual nodes or node selections. We took special care to avoid
having nodes and edges overlap areas of the page that had been assigned to other types of visual
content (i.e., text or other images). This process is illustrated in Figure 7.8c.
Once happy with the layout, we exported the diagram from GraphCoiffure as a regular
image and loaded it in Adobe Photoshop, where we added the central image and a company
logo to produce Figure 7.8d.
80
(a) The original coffee infographic. (b) Applying a stylesheet based on the coffee infographic.
(c) Adapting the layout to the page layout schema. (d) Re-styled lexi-graphFigure 7.8: Making the lexi-graph reproduction look like the coffee infographic.
81
Figure 7.9: In our visualization of the UFRGS 2011 coauthorship network we used this stylizeddepiction of a person as the shape of the nodes. This image was in SVG format.
7.1.3 Creating a coauthorship visualization
Another interesting case study is the creation of a visualization for the 2011 coauthorship
network of the professors and students of the Federal University of Rio Grande do Sul, Brazil,
and their external collaborators. This graph is much larger, with 619 nodes and 2909 edges,
and is also very semantically rich, since it can be used to tell many different stories about the
people that compose it. To further illustrate GraphCoiffure, we focus on one of these possible
stories: designing a visualization centered on this university’s computer graphics group and
how it relates to the other members of the network.
Our data did not include layout information, so we based our visualization on GraphCoif-
fure’s default force-directed algorithm. The graph as it appears when first loaded into Graph-
Coiffure can be seen in Figure 7.10a. Our first step after loading the graph was to define the
visual attributes of the nodes and edges with a stylesheet. Instead of the default circle, we opted
to use for the node shape an SVG image of a stylized person (seen in Figure 7.9), to make it
clear that the visualization consists of a network of people. We decided to use color and size
to encode the different types of participants. Since professors are the most permanent members
of the university, they were colored in red to be more visible in the image. Students, in turn,
were colored in dark blue, while external collaborators were rendered in light blue. This was
achieved with rules similar to those described in the previous subsection, using selectors such
as node[Category="Professor"]. As for the use of size, to make it easier to see the authors
that collaborate the most we encoded node degree to node scale factor. This is done with the
following code:
node
{
shape : " p e r s o n _ p e r s o n " ;
s c a l e −a t t r i b u t e : " d e g r e e " ;
max−s c a l e : 1 ;
min−s c a l e : 0 . 2 ;
}
82
(a) The graph as seen when first loaded into GraphCoiffure.
(b) The graph after application of the stylesheet.Figure 7.10: Applying a stylesheet on the 2011 UFRGS coauthorship network.
83
Since we decided to use the default values for the edges, our stylesheet is ready and we can
move on to the layout itself. The graph after application of the stylesheet can be seen in Figure
7.10b.
Our goal being to create a visualization focused on the CG group, we decided to create a
layout that was literally centered on it. The CG group can be defined as the CG professors and
their students and external collaborators, with the professors being naturally the most central
nodes of this subgraph. To begin the execution of our layout, then, we began by creating a node
group of the CG professors and using a magnet to bring them to the center of the graph, as shown
in Figure 7.11a. We then ran the interactive force-directed algorithm to let the layout change
itself to reflect the repositioning of these nodes, selected the rest of the CG group (students and
external collaborators) by using the “add node neighbors to selection,” and added them to the
node group. Figure 7.11b shows the CG node group in the now-altered layout.
As can be seen in Figure 7.11b, the CG group is now in the center of the layout. Visually,
however, it cannot be distinguished from the rest of the graph—it is only visible in the figure
because of the group‘s boundary, which does not appear in the exported image. To make it
stand out more from the rest of the graph and make the bridges between this group and the
rest of the graph clear, we decided to increase the space between the CG group and the other
nodes. To achieve this, we created a second node group containing all other nodes, increased
the workspace size, and finally scaled up this group to occupy the extra space, resulting in more
white space between the CG group and the rest of the graph, as seen in Figure 7.12a.
Even though the CG group is now in the center of the image and clearly distinguished from
the rest of the graph, its layout is far from optimal, with relationships between members of the
group itself not being very easy to understand. To improve this situation, we applied a force-
directed layout on the CG group node group, resulting in the final image that can be seen in
Figure 7.12b.
7.1.4 Rotten Tomatoes infographics
To illustrate the flexibility of our method, we designed two versions of another graph, which
counts 462 nodes (movies, actors, and directors) and 511 edges (which actors and directors
worked on which movies). The data came from a subset of HetRec 2011’s “MovieLens +
IMDb/Rotten Tomatoes” dataset (CANTADOR; BRUSILOVSKY; KUFLIK, 2011; GROUP,
2014) and presented a network of the movies of 2008 that received the most user ratings (over
50,000).
84
(a) The CG group professors were placed in a node group and a magnet was used to bring them to thecenter of the graph.
(b) After running the interactive force-directed algorithm to let the layout reflect the changes broughtabout by the CG professors’ magnet, we selected the rest of the CG group and added them to the originalnode group.Figure 7.11: Manipulating the UFRGS coauthorship network to make the CG group stand out.
85
(a) To make the CG group stand out more, we increased the workspace size and used a node group toincrease the space between the CG group and the rest of the graph.
(b) The final visualization.Figure 7.12: Finalizing the visualization of the 2011 UFRGS coauthorship network.
86
We loaded the graph in GraphCoiffure and applied an initial force-directed layout to get an
idea of its general aspect. After that, we started working on the stylesheet: we encoded movies
as ellipses, actors as stars, and directors as director’s chairs—each accompanied with labels
showing their titles and names. We mapped movies’ Rotten Tomatoes audience scores to their
width and their top critics score to their height; actors’ average ranks (their “importance” in a
movie) to their size; and actors’ ranks in each of their movies to the thickness of their connecting
edges. We then defined the fonts and colors.
We then worked on the graph’s layout. We activated the interactive force-directed layout
and used a magnet to clean up the layout by separating smaller connected components from the
largest one (with 367 nodes). As we wanted the infographic’s title to appear inside the diagram
instead of above it, we placed a repeller with a relatively large radius in a central region between
the many smaller connected components and the largest one, forcing the layout to reshape itself
around this region (effectively creating a hole in the layout). After the physics engine had done
its work, we stopped it and used the node group tools to stretch the graph horizontally to give
the infographic a landscape aspect ratio. After making some minor tweaks by manually moving
some nodes to ensure their labels were readable, we exported the diagram as an SVG file and
opened it in Adobe Illustrator. Finally, we added the title, a background image, and made some
last adjustments for the color of the objects. The final graphic is shown in Figure 7.13.
Next, to give a better idea of GraphCoiffure’s flexibility, we created a second infographic for
the same dataset, keeping the encoding of actors as stars and directors as chairs, but changing
the encoding of movies so that they also take their genre into account. Movies are now shown
as either tomatoes (fresh) or green blobs (rotten). Inside these icons, we added theater masks to
represent the genres; and audience score was encoded as node size. Once again we separated
smaller components from the large one, but we did not insert a “hole” for the logo in the center,
as we decided on a different design. We also decided to keep the original proportions of the
diagram. To produce the final image, we exported it and placed it over a background previously
created in Illustrator. This image is shown in Figure 7.14.
7.2 User evaluation: interviews with expert users
To obtain feedback on GraphCoiffure, we conducted an informal evaluation with three po-
tential expert users: a physicist who researches epidemiological and metabolic networks and
two computer scientists who work on coauthorship networks. We believed these researchers
would benefit from GraphCoiffure, as they often need to communicate their findings to their
87
Armand Schultz
Frank Miller (II)
Andy Richter
Jessica Alba
Andrew Stanton
Burn A
fterR
eading
Diane Lane
Bedtim
e Stories
Jon Favreau
Aaron Eckhart
Tilda Swinton
FourC
hristmases
John Cho
The Strangers
Ryan Reynolds
Brendan Fraser
Kellan Lutz
Lynn Cohen
Scarlett Johansson
John Travolta
Alan Arkin
Peter Billingsley
Cam G
igandet
John Malkovich
Collin Chou
Susan Sarandon
David M
oreau
Kyle Chandler
Nelson M
cCormick
Will Arnett
David Koechner
Jesse Plemons
Speed Racer
Hancock
Phyllida Lloyd
M. N
ight Shyamalan
Thomas
Kretschmann
David Fincher
Stana Katic
Justin Chadwick
Joseph Cross
Jackie Chan
Mos D
ef
George Clooney
The Eye
Timur
Bekmam
betov
Andrew Adam
son
Paul Dooley
Matthew
McConaughey
The Curious
Case of
Benjam
inB
utton
Paul W.S. Anderson
The Dark K
night
Steven Spielberg
Ian McShane
Nick N
olte
Adrianne Palicki
What H
appensin V
egas
Forest Whitaker
Liam N
eeson
Cameron D
iaz
Sex and the City
Jay Phillips
Louis Leterrier
Seann William
Scott
Paul Weiland
Nicholas Stoller
Paul Rudd
Charlize Theron
Edward N
orton
Donald Sutherland
Will Ferrell
Seth Rogen
Christina Ricci
Meryl Streep
Changeling
Jason Bateman
Gregory H
oblit
Robert Dow
ney Jr.
Ben Stiller
Chloe Moretz
Get Sm
art
Samuel L. Jackson
Philip Seymour
Hoffm
an
Sarah Paulson
Pierce Brosnan
Emile H
irsch
Valerie Azlynn
Mary-Louise Parker
John C. Reilly
Madison Pettis
Mila Kunis
Kenny Ortega
Brian Huskey
Joseph Moore
Kevin Spacey
Christine Jeffs
Tom Vaughan
Colin Hanks
Jeff Bridges
Rob Minkoff
ForgettingSarah M
arshall
Fool's Gold
The Bank Job
Georgie H
enley
Spencer Garrett
Doug Lim
an
D.W
. Moffett
Kristin Davis
Amber H
eard
Eddie Izzard
Shia LaBeouf Jeff Garlin
Brad Pitt
Jim Sturgess
Amy Adam
s
Kristen Stewart
Seth Gordon
Ariel Winter
Zooey Deschanel
Chris RockBilly Burke
Guillerm
o del Toro
Patrick Dem
psey
Elissa Knight
Quantum
ofSolace
Chris William
s
SunshineC
leaning
André Benjamin
Steve Carell
Kristen Bell
Kim D
ickensD
ennis Quaid
Brad Leland
Scott Porter
The ForbiddenK
ingdom
Fred WillardP
rom N
ight
Twilight
Bill Hader
Dan Fogler
Christian Bale
Gw
yneth Paltrow
Janine Turner
Horton H
ears aW
ho!
Kevin Sussman
Leslie Bibb
Matt W
alsh
The Mum
my:
Tomb of the
Dragon Em
peror
Mathieu Am
alric
Jimm
y Hayw
ard
Sayed Badreya
Selma Blair
Jason Segel
Cate Blanchett
Made of H
onor
Kevin Smith
Werner D
aehn
Sarah Jessica
Parker
Taraji P. Henson
Minka Kelly
Andy Wachow
ski
Adam M
cKay
Never B
ackD
own
Natalya Rudakova
Kate Bosworth
Be K
ind Rew
ind
Ron Perlman
John Hurt
Peter Segal
Olga Kurylenko
Gabriele M
uccino
Michael M
cCullers
The Spirit
21
Nick Sw
ardson
Mam
ma M
ia!
Milk
John Stevenson
Jet Li
Catherine
Hardw
icke
The Chronicles
of Narnia:
Prince C
aspian
Russell Brand
A H
ard Rain's
Gonna Fall
Bolt
Terence Stamp
Untraceable
Jason Statham
Hayden Christensen
Christian Oliver
Pete Travis
D.J. Caruso
Tom Cruise
Parker Posey
Paul Bettany
Richard Jenkins
Bryan Bertino
Seven Pounds
Zac Efron
Pierre Morel
Mark W
ahlberg
Heath Ledger
Harold and
Kum
ar Escapefrom
Guantanam
oB
ay
Step Brothers
Daniel Craig
Rob Corddry
Tim G
uinee
Sean Penn
Marc Forster
Meet the
Spartans
Jason Friedberg
Kung Fu P
anda
Anatole Taubman
Jeff Wadlow
WA
LL·E
Guy Pearce
Transporter 3
Michael Patrick King
Maura Tierney
Toby Metcalf
Jum
per
The Spiderwick
Chronicles
Keri Russell
Ethan Coen
Mark W
aters (VIII)
Michelle M
onaghan
Carmen Electra
High SchoolM
usical 3:Senior Y
ear
Eric Christian Olsen
Jack Black
Jason Sudeikis
Miley Cyrus
Will Lym
an
Eric Bana
Bill Smitrovich
Greg Kinnear
Yes M
an
Reese Witherspoon
Natalie Portm
an
Rob Cohen
Matthew
Fox
Baby M
ama
Sigourney Weaver
David Schw
imm
er
Angelina Jolie
Valkyrie
Sean Faris
The IncredibleH
ulk
Gus Van Sant
Amanda Seyfried
Paulie Litt
Zach Gilford
Faran TahirEric Darnell
Vantage P
oint
Indiana Jonesand the
Kingdom
of theC
rystal Skull
Hellboy II: TheG
olden Arm
y
Dustin H
offman
Dana W
heeler-
Nicholson
Wanted
Harrison Ford
Woody H
arrelson
Kim Cattrall
Jon Hurw
itz
Terrence How
ard
Jim Carrey
Tropic Thunder
Will Sm
ith
Vince Vaughn
Semi-P
ro
Skandar Keynes
John Leguizamo
David W
ain
The Other
Boleyn G
irl
Saffron Burrows
William
Fichtner
Definitely,M
aybe
Kevin Mckidd
Derek Luke
Taken
Eagle Eye
Taylor KitschW
illiam H
urt
Jonah Hill
Peyton Reed
Jamie Bell
Michael W
axman
Kal Penn
Jeremy Sum
pter
Olivier M
egaton
Gran Torino
Mary Steenburgen
Kate Hudson
Harvey Friedm
an
Freddie Highm
ore
Bryan Singer
Connie Britton
James M
cAvoy
Christopher Nolan
Susie Essman
Ken Davitian
Doug Jones
Kent Alterman
Andrew D
aly
Doubt
Adam Shankm
an
Lucas Grabeel
Isla Fisher
Andy Tennant
Diedrich Bader
Robert Duvall
Ashton Kutcher
Iron Man
Shaun Toub
"Dw
ayne ""The
Rock"" Johnson"
Ken Jeong
Brittany Snow
Michel G
ondry
The Happening
Ahney Her
Death R
ace
Clark Gregg
François Berléand
Tina Fey
John Patrick
Shanley
Gabriel M
acht
Emily Blunt
Sean O'Bryan
Alessandro Nivola
Amy Poehler
Craig Robinson
Rosario Daw
son
Adam Brooks
Trieu Tran
Bee Vang
Peter Berg
Zack and Miri
Make a P
orno
Denis O
'Hare
Waldem
ar Kobus
Roger Donaldson
Ray Winstone
Aimee Teegarden
Robert Luketic
Sean MaG
uire
Elizabeth Banks
Clint Eastwood
Anne Hathaw
ay
Tyrese Gibson
Role M
odels
Carol Burnett
Liv Tyler
Madagascar:
Escape 2 Africa
Morgan Freem
an
David M
ackay
Nicole Kidm
an
Australia
Danny Boyle
Meagan G
ood
Ace of H
earts
Being H
uman
Chris Carter
Camilla Belle
Malin Akerm
an
Philip Cabrita
Marisa Tom
ei
Amanda Peet
Jason Watkins
Matthew
Harrison
David W
enham
Michael Cram
10,000 BC
Brendan Gleeson
Steven Strait
Amy Jo Johnson
Briana Evigan
Daniel Boileau
Colin Farrell
Kimberly Peirce
Ryan Phillippe
Kasey Kieler
Katherine Heigl
Roland Emm
erich
Britt McKillip
Dave Lantaigne
Ruth Marshall
Mark Taylor
Tattiawna Jones
Sinead Keenan
David D
uchovny
David Paetkau
In Bruges
Will Kem
p
Stephen Daldry
Channing Tatum
Slumdog
Millionaire
Anne Fletcher
Dean Cain
Hugh D
illon
David H
ackl
Lyndsey Marshal
The X Files: I
Want to B
elieve
Jessica Lucas
Robert Hoffm
an
T.J. Miller
Step Up 2: The
Streets
Connor Dunn
Burkely Duffield
Donald Sum
pter
David Kross
Flashpoint
Mark Fleischm
ann
Hugh Jackm
an
Cliff Curtis
Stephen Surjik
Kate Winslet
David Patrick G
reenLenora Crichlow
Jon Chu
Mickey Rourke
Russell Tovey
Martin M
cDonagh
Mike D
opud
The Wrestler
Nathan Clark
Saw V
Ralph Fiennes
Gillian Anderson
Dev Patel
Matt Reeves
Sonny LittD
arren Aronofsky
Tobin Bell
Aidan Turner
Julie Benz
Lizzy Caplan
Cloverfield
27 Dresses
Stop-Loss
Baz Luhrmann
Sylvester Stallone
The Reader
C.J. Jackman-
Zigante
Enrico Colantoni
Ram
bo
James M
arsden
Anne Marie D
eLuise
Sergio Di Zio
Abbie Cornish
zohan
You D
on't Mess
with the Zohan
Adam Sandler
Michael Buffer
Dave M
atthews
Kevin Nealon
Robert Smigel
Rob Schneider
Dina D
oron
John Turturro
Dennis D
ugan
Daoud H
eidami
Lainie KazanCharlotte Rae
Ido Mosseri
Emm
anuelle
Chriqui
Figure 7.13: Our first Rotten Tomatoes infographic.
89
peers or to a general audience. These potential users are all from a technical/scientific back-
ground and a more thorough evaluation would also include other types of users, such as graphic
designers, journalists, and artists. However, GraphCoiffure was designed with direct input from
a graphic designer, so we felt feedback from these users was already adequate for the evaluation
at this moment.
The evaluation process consisted of one session with each researcher. In each session, we
gave them a live demonstration of the prototype while exchanging ideas and obtaining their
feedback.
The first session held was with the physicist. During our conversation, he said that in his
field visualization is not traditionally used, but that this is starting to change. So far, however,
the few colleagues of his who use visualization still use it more to explore graphs than to com-
municate information about them. He also said, though, that a technology like GraphCoiffure
could be very useful in communicating the spread of epidemics—particularly when used to cre-
ate several similar-looking graphs that could be used as snapshots of an epidemic at a certain
time and presented as a small multiples visualization. Throughout our conversation, he could
think of how GraphCoiffure could be used in his actual research, as a tool for exploration. He
considered, for instance, of how mapping data attributes to visual attributes could help uncover
new findings. His focus on exploration hearkens back to our Chapter 5 discussion of how con-
tent providers and visualization designers tend to have different perspectives on how to design
visualizations.
Our second interview was with one of the computer science researchers, a university pro-
fessor who works with, among other topics, information retrieval, recommender systems, and
social network analysis. Within this latter topic, he works with academic coauthorship net-
works and frequently has to create visualizations for his publications, be they reports on the
evolution of the university’s collaboration network or images to be used in posters and papers
to convey scientific findings. For this, he has usually turned to Gephi (see Section 3.1), but has
been disappointed by its lack of flexibility. Seeing GraphCoiffure, he liked how it was able to
easily encode semantic information and data attributes into visual attributes. He also liked the
idea of applying a single stylesheet on many graphs to create, for instance, a small multiples
visualization of the evolution of a coauthorship network through time. For the improvement
of GraphCoiffure, he suggested as a feature the possibility of using similarity-based clustering
to simplify graphs. Throughout our conversation, he expressed a wish to use GraphCoiffure to
create material for his classes and presentations.
The final interviewee, the second computer scientist, is a professor at another university. His
90
research is focused on bibliographic data mining; coauthorship networks being thus a major
topic of interest. He was particularly enthusiastic about GraphCoiffure as he often needs to
create static node-link diagrams for publications and presentations and found it frustrating that
tools such as Gephi and Cytoscape had very limited support for manual layout customization
after the application of a layout algorithm, making the creation of visualizations very artisanal
and time-consuming. He presented us with several examples of his work where he thought
GraphCoiffure would have been useful (two of them reproduced in Figure 7.15). He pointed
out that he felt page layout schemas and the possibility of manipulating subgraphs (groups)
and applying layouts on them would have been particularly useful in the composition of his
visualizations. He also liked the idea of using magnets to reshape layouts based on semantic and
data attribute information. For the improvement of GraphCoiffure, he suggested the possibility
of saving a graph’s layout information and reusing it on another, similar graph to be able to
create, for instance, a small multiples visualization of the evolution of a graph in a way that
differences in layout between each step could be clearly seen, as one step’s layout would build
on the layout of the previous step. Another suggestion was the inclusion of a tool that would
apply different layouts for each subgraph and present the user with several options that attempt
to conform to a page’s shape and content (as specified in a page layout schema).
Overall, we find the results from these interviews very useful: all subjects found that Graph-
Coiffure could be useful in their research and also provided us with examples and suggestions.
Many of the suggestions are already included in our future research plan.
91
(a) This node-link diagram depicting a coauthorship network had to be manually adapted for the pageand results were unsatisfying. According to the researcher, page layout schemas and the manipulation ofnode groups would have been useful to make this diagram better.
(b) On this social network, the researcher believed applying circular layouts on groups of collaboratorsand reorganizing the layout would have made for a clearer diagram.Figure 7.15: Examples of real-world visualizations given by the third researcher we interviewedrepresentative of situations where he thought GraphCoiffure would have been useful.
92
8 CONCLUSION
Our previous experience with MagnetViz (SPRITZER; FREITAS, 2008; SPRITZER; FRE-
ITAS, 2012) had already alerted us to the need some users may have of refining automatically
generated layouts of node-link diagrams. The present work, in turn, has made it evident that
this need is real and important, but also that it is part of a much deeper need of beautifying (as
in the definition given in Chapter 6) node-link diagrams to make them more effective as tools
for communication.
Our study of the process behind the creation of static node-link diagrams for communication—
and in particular our interview with sociologist Dana Diminescu—emphasized the importance
of considering the differences of perspective of the different people who may collaborate to
create these images (Chapter 5). Dana’s reported experience with the e-diaspora’s project was
a real example of this, revealing how graphic designers value visual aspects over information,
while researchers value the opposite. We designed GraphCoiffure with this in mind, to help
bridge these different points of view. GraphCoiffure helps individual users or collaborators
transition between graph editors and graphics software, allowing them to beautify graphs.
Although it is already powerful, we can think of several extra features that would imme-
diately increase the practical utility of GraphCoiffure; these are support for directed graphs,
curved edges, options for edge routing, alternative edge drawings, a more sophisticated label
positioning strategy, metanodes, stylesheet gradients, history management, loading graphs from
formats other than GraphML (e.g., Graphviz’s dot), and other presentation aid types (e.g, high-
lights, convex hulls, visual landmarks, legends, etc.).
In addition, while we have already included several layout manipulation tools, we believe
there is space for the development of new techniques for deforming and reshaping layouts. This
could provide users with even more power and control over the image they are composing.
Another extension to our work could be to find ways to transform an image depicting a graph
back into an editable diagram. Finally, it should prove interesting to fully investigate how design
elements can help increase the communicative power of a visualization.
Overall, we acknowledge that GraphCoiffure is merely a first step into facilitating the tran-
sition between content generators and designers when attempting to produce high quality static
communicative node-link diagrams. However, our proof-of-concept prototype already helps
users make quality diagrams that can be smoothly moved from screen to page, as can be seen
in our usage scenarios (Section 7.1).
93
REFERENCES
ARCHAMBAULT, D.; MUNZNER, T.; AUBER, D. Grouseflocks: Steerable exploration ofgraph hierarchy space. IEEE Transactions on Visualization and Computer Graphics, IEEEEducational Activities Department, Piscataway, NJ, USA, v. 14, n. 4, p. 900–913, 2008. ISSN1077-2626.
ARCHAMBAULT, D.; PURCHASE, H. c.; PINAUD, B. The readability of path-preservingclusterings of graphs. Computer Graphics Forum (Proc. EuroVis 2010), v. 29, n. 3, p.1173–1182, 2010.
ARIS, A.; SHNEIDERMAN, B. Designing semantic substrates for visual network exploration.Information Visualization, Palgrave Macmillan, v. 6, p. 281–300, December 2007. ISSN1473-8716.
AUBER, D. Tulip: A huge graph visualisation framework. P. Mutzel and M. Junger, 2003.105-126 p. Available from Internet: <http://hal.archives-ouvertes.fr/hal-00307626>.
BASTIAN, M.; HEYMANN, S.; JACOMY, M. Gephi: an open source software for exploringand manipulating networks. In: ICWSM: International AAAI Conference on Weblogs andSocial Media. [S.l.: s.n.], 2009. p. 361–362. Http://www.gephi.org.
BATINI, C.; FURLANI, L.; NARDELLI, E. What is a good diagram? a pragmatic approach.In: Proceedings of the Fourth International Conference on Entity-Relationship Approach.Washington, DC, USA: IEEE Computer Society, 1985. p. 312–319. ISBN 0-444-87951-X.
BATTISTA, G. D. et al. Graph Drawing. Upper Saddle River, NJ: Prentice Hall, 1999.
BAUR, R. Les 101 Mots du Design Graphique à l’Usage de Tous. [S.l.]: Archibooks, 2013.
BENNETT, C. et al. The aesthetics of graph visualization. In: Proceedings of the ThirdEurographics Conference on Computational Aesthetics in Graphics, Visualizationand Imaging. Aire-la-Ville, Switzerland, Switzerland: Eurographics Association, 2007.(Computational Aesthetics’07), p. 57–64. ISBN 978-3-905673-43-2.
BERTFAULT, F. A force-directed algorithm that preserves edge-crossing properties. Inf.Process. Lett., Elsevier North-Holland, Inc., Amsterdam, The Netherlands, The Netherlands,v. 74, n. 1-2, p. 7–13, 2000. ISSN 0020-0190.
BEZERIANOS, A. et al. Graphdice: A system for exploring multivariate social networks.Computer Graphics Forum (Proc. EuroVis 2010), v. 29, n. 3, p. 863–872, 2010.
CANTADOR, I.; BRUSILOVSKY, P.; KUFLIK, T. 2nd workshop on informationheterogeneity and fusion in recommender systems (hetrec 2011). In: Proceedings of the 5thACM conference on Recommender systems. New York, NY, USA: ACM, 2011. (RecSys2011).
CHIMANI, M. et al. The open graph drawing framework (ogdf). In: . Handbook ofGraph Drawing and Visualization. [S.l.]: CRC Press, 2012. To appear.
COHEN, R. F. et al. Three-dimensional graph drawing. In: Graph Drawing. [S.l.: s.n.], 1994.p. 1–11.
94
DIMINESCU, D. e-Diasporas Atlas. 2012. Http://www.e-diasporas.fr. [accessed on June 29,2014].
DIMINESCU, D. e-Diasporas Atlas : Exploration and Cartography of Diasporas onDigital Networks. [S.l.]: Maison des Sciences de l’Homme, 2012. ISBN 2735114422.
DWYER, T.; MARRIOTT, K.; WYBROW, M. Interactive, constraint-based layout ofengineering diagrams. ECEASST, v. 13, 2008.
EADES, P. A. A heuristic for graph drawing. Congressus Numerantium, v. 42, p. 149–160,1984.
ELMS, T. Lexical Distance Among the Languages of Europe. 2008.Http://elms.wordpress.com/2008/03/04/lexical-distance-among-languages-of-europe/.[accessed on May 23, 2014]. Available from Internet: <http://elms.wordpress.com/2008/03/04/lexical-distance-among-languages-of-europe/>.
FRUCHTERMAN, T. M. J.; REINGOLD, E. M. Graph drawing by force-directed placement.Softw. Pract. Exper., John Wiley & Sons, Inc., New York, NY, USA, v. 21, n. 11, p.1129–1164, 1991. ISSN 0038-0644.
GANSNER, E. R.; NORTH, S. C. An open graph visualization system and its applications tosoftware engineering. Software - Practice and Experience, v. 30, n. 11, p. 1203–1233, 2000.
GROUP, G. research. GroupLens website. 2014. Http://www.grouplens.org. [accessed onFebruary 27, 2015]. Available from Internet: <http://www.grouplens.org>.
HAGBERG, A. A.; SCHULT, D. A.; SWART, P. J. Exploring network structure, dynamics,and function using NetworkX. In: Proceedings of the 7th Python in Science Conference(SciPy2008). Pasadena, CA USA: [s.n.], 2008. p. 11–15.
HERMAN, I. et al. Graph visualization and navigation in information visualization: A survey.IEEE Transactions on Visualization and Computer Graphics, v. 6, p. 24–43, 2000.
LEE, B. et al. Task taxonomy for graph visualization. In: BELIV ’06: Proceedings of the2006 AVI workshop on BEyond time and errors. New York, NY, USA: ACM, 2006. p. 1–5.ISBN 1-59593-562-2.
LIMA, M. Visual Complexity: Mapping Patterns of Information. [S.l.]: PrincetonArchitectural Press, 2013. ISBN 1616892196, 9781616892197.
LIMA, M. Visual Complexity. 2014. Http://www.visualcomplexity.com. [accessed on May23, 2014]. Available from Internet: <http://www.visualcomplexity.com>.
LOMBARDI, M.; HOBBS, R. C.; RICHARDS, J. Mark Lombardi: Global Networks. [S.l.]:Independent Curators Inc, 2003. Paperback. ISBN 0916365670.
MARRIS, E. 2006 gallery: Brilliant display. Nature, v. 444, p. 985–991, dec 2006.
MCGUFFIN, M. J.; JURISICA, I. Interaction techniques for selecting and manipulatingsubgraphs in network visualizations. IEEE Transactions on Visualization and ComputerGraphics, IEEE Computer Society, Los Alamitos, CA, USA, v. 15, p. 937–944, 2009. ISSN1077-2626.
95
NASCIMENTO, H.; EADES, P. User hints for directed graph drawing. In: MUTZEL, P.;JüNGER, M.; LEIPERT, S. (Ed.). Graph Drawing. [S.l.]: Springer Berlin Heidelberg, 2002,(Lecture Notes in Computer Science, v. 2265). p. 205–219. ISBN 978-3-540-43309-5.
ODEWAHN, A. Visualizing the u.s. senate social graph (1991?2009). In: . [S.l.]: O’ReillyMedia, Inc., 2010. chp. 8, p. 123–142.
PATTISON, T.; VERNIK, R.; PHILLIPS, M. Information visualisation using composablelayouts and visual sets. In: Proceedings of the 2001 Asia-Pacific symposium on Informationvisualisation - Volume 9. Darlinghurst, Australia, Australia: Australian Computer Society,Inc., 2001. (APVis ’01), p. 1–10. ISBN 0-909925-87-9.
PIETRIGA, E. Semantic web data visualization with graph style sheets. In: Proceedings ofthe 2006 ACM Symposium on Software Visualization. New York, NY, USA: ACM, 2006.(SoftVis ’06), p. 177–178. ISBN 1-59593-464-2.
POPCHARTLAB. Pop Chart Lab website. 2014. Http://www.popchartlab.com. [accessed onMay 23, 2014]. Available from Internet: <http://www.popchartlab.com>.
PRETORIUS, A. J.; WIJK, J. J. van. Visual analysis of multivariate state transition graphs.IEEE Transactions on Visualization and Computer Graphics, IEEE Educational ActivitiesDepartment, Piscataway, NJ, USA, v. 12, n. 5, p. 685–692, 2006. ISSN 1077-2626.
PRETORIUS, A. J.; WIJK, J. J. van. Visual inspection of multivariate graphs. In: EUROVIS’08: Proceedings of the 2008 Eurographics/IEEE-VGTC Symposium on Visualization.Washington, DC, USA: IEEE Computer Society, 2008. p. 967–974.
PURCHASE, H. C. Which aesthetic has the greatest effect on human understanding? In:Proceedings of the 5th International Symposium on Graph Drawing. London, UK, UK:Springer-Verlag, 1997. (GD ’97), p. 248–261. ISBN 3-540-63938-1. Available from Internet:<http://dl.acm.org/citation.cfm?id=647549.728779>.
PURCHASE, H. C.; COHEN, R. F.; JAMES, M. Validating graph drawing aesthetics.In: Proceedings of the Symposium on Graph Drawing. London, UK, UK: Springer-Verlag, 1996. (GD ’95), p. 435–446. ISBN 3-540-60723-4. Available from Internet:<http://dl.acm.org/citation.cfm?id=647547.728624>.
PURCHASE, H. C.; COHEN, R. F.; JAMES, M. I. An experimental study of the basis forgraph drawing algorithms. J. Exp. Algorithmics, ACM, New York, NY, USA, v. 2, p. 4, 1997.ISSN 1084-6654.
PURCHASE, H. C.; PILCHER, C.; PLIMMER, B. Graph drawing aesthetics—createdby users, not algorithms. IEEE Transactions on Visualization and Computer Graphics,IEEE Educational Activities Department, Piscataway, NJ, USA, v. 18, n. 1, p. 81–92, jan.2012. ISSN 1077-2626.
PURCHASE, H. C. et al. Graph drawing aesthetics in user-sketched graph layouts. In:Proceedings of the Eleventh Australasian Conference on User Interface - Volume 106.Darlinghurst, Australia, Australia: Australian Computer Society, Inc., 2010. (AUIC ’10), p.80–88. ISBN 978-1-920682-87-3.
96
RICHE, N. H. et al. Exploring the design space of interactive link curvature in networkdiagrams. In: Proceedings of the International Working Conference on AdvancedVisual Interfaces. New York, NY, USA: ACM, 2012. (AVI ’12), p. 506–513. ISBN978-1-4503-1287-5.
RYALL, K.; MARKS, J.; SHIEBER, S. An interactive constraint-based system for drawinggraphs. In: Proceedings of the 10th Annual ACM Symposium on User InterfaceSoftware and Technology. New York, NY, USA: ACM, 1997. (UIST ’97), p. 97–104. ISBN0-89791-881-9.
SAMARA, T. Making and Breaking the Grid. [S.l.]: Rockport Publishers, 2005. 208 p.ISBN 9781592531257.
SCHMIDT, S. et al. A set of multi-touch graph interaction techniques. In: ACM InternationalConference on Interactive Tabletops and Surfaces. New York, NY, USA: ACM, 2010. (ITS’10), p. 113–116. ISBN 978-1-4503-0399-6.
SHANNON, P. et al. Cytoscape. 2003. Http://www.cytoscape.org. [accessed on June 29,2014].
SHNEIDERMAN, B.; ARIS, A. Network visualization by semantic substrates. IEEETransactions on Visualization and Computer Graphics, IEEE Educational ActivitiesDepartment, Piscataway, NJ, USA, v. 12, n. 5, p. 733–740, 2006. ISSN 1077-2626.
SMITH, M. A. et al. NodeXL: a free and open network overview, discovery andexploration add-in for Excel 2007/2010. 2010. Http://nodexl.codeplex.com/ from the SocialMedia Research Foundation, http://www.smrfoundation.org. [accessed on June 29, 2014].
SPRITZER, A. et al. Towards a smooth design process for static communicative node-linkdiagrams. Computer Graphics Forum (Proc. EuroVis 2015), 2015. [to appear].
SPRITZER, A. S.; FREITAS, C. M. D. S. A physics-based approach for interactivemanipulation of graph visualizations. In: Proceedings of the Working Conference onAdvanced Visual Interfaces. New York, NY, USA: ACM, 2008. (AVI ’08), p. 271–278. ISBN978-1-60558-141-5.
SPRITZER, A. S.; FREITAS, C. M. D. S. Design and evaluation of magnetviz - a graphvisualization tool. IEEE Transactions on Visualization and Computer Graphics, IEEEComputer Society, Los Alamitos, CA, USA, v. 18, n. 5, p. 822–835, 2012. ISSN 1077-2626.
STEELE, J.; ILIINSKY, N. Beautiful Visualization: Looking at Data Through the Eyes ofExperts. 1st. ed. [S.l.]: O’Reilly Media, Inc., 2010. ISBN 1449379869, 9781449379865.
SUGIYAMA, K.; MISUE, K. Graph Drawing by Magnetic-Spring Model. [S.l.], 1994.
SUGIYAMA, K.; MISUE, K. A simple and unified method for drawing graphs: Magnetic-spring algorithm. In: GD ’94: Proceedings of the DIMACS International Workshop onGraph Drawing. London, UK: Springer-Verlag, 1995. p. 364–375. ISBN 3-540-58950-3.
TAMASSIA, R. Handbook of Graph Drawing and Visualization. Boca Raton, FL: CRCPress, 2014.
97
TUNKELANG, D. A Numerical Optimization Approach to General Graph Drawing.Thesis (PhD) — School of Computer Science, Carnegie Mellon University, 1999.
VERLET, L. Computer "experiments" on classical fluids. i. thermodynamical properties oflennard-jones molecules. Phys. Rev., American Physical Society, v. 159, n. 1, p. 98, Jul 1967.
WARE, C. et al. Cognitive measurements of graph aesthetics. Information Visualization,Palgrave Macmillan, v. 1, n. 2, p. 103–110, jun. 2002. ISSN 1473-8716.
WATTENBERG, M. Visual exploration of multivariate graphs. In: CHI ’06: Proceedings ofthe SIGCHI conference on Human Factors in computing systems. New York, NY, USA:ACM, 2006. p. 811–819. ISBN 1-59593-372-7.
WONG, N.; CARPENDALE, S. Supporting interactive graph exploration using edge plucking.In: Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series. [S.l.:s.n.], 2007. (Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series,v. 6495).
WONG, N.; CARPENDALE, S.; GREENBERG, S. Edgelens: an interactive methodfor managing edge congestion in graphs. In: Proceedings of the Ninth annual IEEEconference on Information visualization. Washington, DC, USA: IEEE ComputerSociety, 2003. (INFOVIS’03), p. 51–58. ISBN 0-7803-8154-8. Available from Internet:<http://dl.acm.org/citation.cfm?id=1947368.1947382>.
YED. 2014. Http://www.yworks.com/yed. [accessed on June 29, 2014].
98
APPENDIX A USING THE GRAPHCOIFFURE PROTOTYPE
The following sections describe in detail all features of the GraphCoiffure prototype.
A.1 User interface
GraphCoiffure’s user interface, shown in Figure A.1, consists of the following elements:
menu bar, workspace, node and edge selection panels, and stylesheet editor.
The menu bar gives users access to most of the system’s functionality. It consists of the
following menus: File, Workspace, Selection, Layout, and Appearance.
The GraphCoiffure workspace consists of a virtual page containing a WYSIWYG node-link
view of a graph loaded from a GraphML file. If the file already includes layout information (i.e.,
node positions), it is used to draw the graph; otherwise the Fruchterman-Reingold force-directed
algorithm (FRUCHTERMAN; REINGOLD, 1991) is used to generate the initial visualization.
Layout information can be read from GraphML files if the position of each node is encoded
as a “pos” attribute formatted as “x, y” (e.g., <data key=“pos”>790,65</data>) in the node’s
respective tag. Workspace size is automatically computed when the graph is loaded, but can
be manually redefined by the users with the corresponding option in the Workspace menu.
Zooming in or out is performed with the mouse wheel, while panning the view is done with the
scrollbars.
Clicking on an item in the workspace will select it and movable items (such as nodes)
can be repositioned by clicking and dragging. Multiple items can be selected by holding the
control key and clicking on the desired objects or by clicking on an empty area and dragging
to activate a rubber band selector box. To make sure only items of certain types are selected,
selection filters can be turned on or off by checking or unchecking the respective options on
the Selection menu. Selected objects can be identified by a bounding rectangle that will appear
around them. Multiple selected items can be moved around by clicking and dragging on any
of the items. Special topology-based node selection tools are also accessible from the Selection
menu, allowing users to select the neighbors of currently selected nodes, add the neighbors of
the currently selected nodes to the current selection, or select the connected components of the
currently selected nodes.
The node and edge selection panels (Figure A.2) provide an alternative, content-based way
to select nodes and edges, allowing for semantics-based operations. These panels contain tables
that show the attributes and some useful properties (e.g., degree, connected component, size of
100
Figure A.3: Stylesheet editor
connected component) of each node and edge. The tables also contain a Selected column, with
a checkbox for each item that when checked selects it in the workspace. Checking the Select All
checkbox on the top-left corner of the panel will select all objects currently displayed on them.
So that items are easier to find, clicking on a column header will sort a table by this column’s
contents. The search box can also be used to filter the table: only items whose attributes contain
what is typed into the box will be displayed.
The stylesheet editor (A.3), in turn, is a simple text editor from which users can quickly
change the appearance of the graph’s nodes and edges by modifying its stylesheet.
A.2 Planning for a page layout
To help users plan a visualization for a specific page structure, GraphCoiffure lets them
import a page layout schema. A page layout schema can include a grid and placeholder for
the page’s different visual elements. These placeholders can be either fixed (displayed in red
on the workspace), representing areas of the page that must remain in their original positions,
or movable (in blue), representing elements that can be repositioned if necessary. A sample
layout schema can be seen in Figure A.4 while Figure A.5 displays a graph along with a layout
schema.
A layout schema is loaded from a specially formatted SVG file in which grids are made up
of line objects with a class attribute of value “grid” (i.e., class=“grid”) and fixed and movable
placeholder elements are represented by rect objects with class attributes of values “fixedBlock”
and “movableBlock,” respectively.
101
Figure A.4: A sample page layout schema containing two placeholder elements, one fixed (inred) and one movable (in blue).
Figure A.5: A graph and a page layout schema on GraphCoiffure.
102
A.3 Customizing Visual Attributes With Stylesheets
Similar to how modern web technology uses HTML to represent and organize content and
CSS stylesheets to define how that content is actually displayed, GraphCoiffure includes a CSS-
like stylesheet system that defines how the nodes and edges will look. Users can define appear-
ance attributes explicitly (e.g., color: blue) or implicitly, using elements of the graph’s topology
as well as attribute values of its nodes and edges.
Stylesheets can be edited directly within GraphCoiffure, in its simple stylesheet editor (Fig-
ure A.3), or imported from a CSS file. Importing, saving, and applying stylesheets is done using
the corresponding commands in the Appearance menu.
As with typical CSS files, our graph stylesheets contain a collection of rules. Each rule is
comprised of a selector and a set of declarations. The selector defines which objects will be
subject to the rule, while the declarations specify the visual attributes the rule will enforce on
the objects. Selectors can be used to affect nodes, edges, and SVG shapes that are used by the
nodes. The syntax for the definition of a rule is as follows:
s e l e c t o r
{
d e c l a r a t i o n _ n a m e : d e c l a r a t i o n _ v a l u e ;
. . .
d e c l a r a t i o n _ n a m e : d e c l a r a t i o n _ v a l u e ;
}
Selectors identify the type of object that will be changed, what characteristics this object
should have, and which element of the object should be modified. The syntax for a selector is
as follows:
o b j e c t _ t y p e [ c o n d i t i o n s ] i d_1 id_2 . . . i d_n
object_type is an identifier that stands for the type of object the will be modified (namely,
node or edge). The comma-separated conditions, placed within brackets, are simple rules that
define what values the selected objects should have for certain properties (e.g., “degree <= 3”).
The id_n tags stand for the ids of SVG sub-objects, with the rightmost one being a sub-object
of the one directly preceding it, and so on (this is explained in detail in section A.3.0.1).
Figure A.6 shows a reproduction of Theresa Elms’s visualization of the lexical distance
among the languages of Europe (2008) opened in GraphCoiffure using the default stylesheet.
103
Figure A.6: A graph visualization using GraphCoiffure’s default stylesheet and no layout mod-ification.
Figure A.7: The node shape manager.
104
A.3.0.1 Changing the Appearance of Nodes
The appearance of nodes is altered with the node selector. The most important declaration
that can be used with this selector is shape, which defines the SVG shape that will be used as
the nodes’ visual representation. The value for the shape attribute is a string (i.e., text contained
within quotes) containing the id of the desired SVG shape. By default, the “default_circle”
shape is used.
To change the shape of a node, first the desired SVG file has to be loaded into GraphCoiffure
using the Node Shape Manager dialog (Figure A.7), which will ask for the file name and the
id of the desired shape. Once the shape has been imported, it will appear in the manager’s list
of shapes with an id of shapeFileName_shapeId. This id is what should be used as the value of
the shape declaration in a node ruleset on the stylesheet.
To use the loaded “elementId” image as the visual representation of the nodes, for example,
one would use the following CSS code:
node {
shape : " f i l e n a m e _ e l e m e n t I d " ;
}
Other visual attributes of the nodes that can be defined in a node ruleset include their size
and their label. The size of the nodes can be defined by specifying a scale factor or by explicitly
providing their width and/or height. Both the explicit size and the scale factor can be made to be
automatically determined by a chosen node attribute (e.g., making node size proportional to the
value of the attribute x). Table A.1 shows all size-related operations that are currently supported
by the GraphCoiffure prototype.
To illustrate how stylesheets can be used to manipulate node size, the code below shows
a simple modification to the default stylesheet that uses an SVG image and an attribute of the
graph to transform the graph shown in Figure A.6 into the one shown in Figure A.8. In the
latter, nodes are represented by the “mushroom” image (loaded from an SVG file) and scaled
proportionally to the their “speakers” attribute.
node {
shape : " mushroom_mushroom " ;
s c a l e −a t t r i b u t e : " s p e a k e r s " ;
max−s c a l e : 0 . 2 5 ;
min−s c a l e : 0 . 1 ;
}
105
Table A.1: Stylesheet declarations concerning node size.Declaration Name Possible Values Descriptionscale Real or integer number Scale factor that will be applied to the nodes. The same factor is
applied to both x and y coordinates, always maintaining the aspectratio.
scale-attribute String (text contained withinquotes) containing the name of areal or integer node property or“degree”
Has to be used along with max-scale and min-scale.The scale factor will be computed by mapping the node’s value for thegiven attribute to its correspondent value within the range establishedby max-scale and min-scale.
max-scale Real or integer number Used in conjunction with scale-attribute. Corresponds to themaximum scale factor that can be applied to a node.
min-scale Real or integer number Used in conjunction with scale-attribute. Corresponds to theminimum scale factor that can be applied to a node.
width Real or integer number or thekeyword auto
Explicit specification of the node’s width. If auto is given instead of anumber, the width will be computed automatically based on a providedvalue for the height declaration.
width-attribute String (text contained withinquotes) containing the name of areal or integer node property or“degree”
Has to be used along with max-width and min-width.The width will be computed by mapping the node’s value for the givenattribute to its correspondent value within the range established bymax-width and min-width.
max-width Real or integer number Used in conjunction with width-attribute. Corresponds to themaximum width that the node can have.
min-width Real or integer number Used in conjunction with width-attribute. Corresponds to theminimum width that the node can have.
height Real or integer number or thekeyword auto
Explicit specification of the node’s height. If auto is given instead of anumber, the height will be computed automatically based on aprovided value for the width declaration.
height-attribute String (text contained withinquotes) containing the name of areal or integer node property or“degree”
Has to be used along with max-height and min-height.The height will be computed by mapping the node’s value for the givenattribute to its correspondent value within the range established bymax-height and min-height.
max-height Real or integer number Used in conjunction with height-attribute. Corresponds to themaximum height that the node can have.
min-height Real or integer number Used in conjunction with height-attribute. Corresponds to theminimum height that the node can have.
size <x>, <y> or <x> <y>, where<x> and <y> are both real orinteger numbers
Simultaneous explicit specification of node width and height.
size-attribute String (text contained withinquotes) containing the name of areal or integer node property or“degree”
Has to be used along with max-size and min-size.The width and height will be computed by mapping the node’s valuefor the given attribute to its correspondent value within the rangeestablished by max-size and min-size.
max-size <x>, <y> or <x> <y>, where<x> and <y> are both real orinteger numbers
Used in conjunction with size-attribute. Corresponds to the maximumsize that the node can have.
min-size <x>, <y> or <x> <y>, where<x> and <y> are both real orinteger numbers
Used in conjunction with size-attribute. Corresponds to the minimumsize that the node can have.
106
Figure A.8: Using stylesheets and SVG to change node appearance: nodes of our reproductionof Elms’s graph (2008) are drawn using the “mushroom” image and scaled proportionally totheir “speakers” attribute.
Figure A.9: Declarations are added to the “node” rule on the stylesheet to define the appearanceof labels on our reproduction of Elms’s graph (2008).
107
Every aspect of how node labels appear can also be defined in a node rule, from the attribute
that is used as its text to its font and alignment. As with the size declarations, the label’s color
can be set to be determined based on a node attribute. A color range is given by the user and
the property value is automatically mapped to a color within this range. Optionally, users can
also choose an easing curve for the color interpolator, with the default one being a linear curve.
Table A.2 describes all node label declarations that can be used. The following code, in turn,
uses our reproduction of Elms’s graph (2008) to illustrate how these declarations can be used in
practice, with results being shown in Figure A.9:
node {
shape : " d e f a u l t _ c i r c l e " ;
l a b e l −v e r t i c a l −a l i g n m e n t : Above ;
l a b e l −a t t r i b u t e : " name " ;
l a b e l −f o n t−f a m i l y : " T r a j a n Pro " ;
l a b e l −f o n t−we ig h t : Bold ;
l a b e l −f o n t−p o i n t−s i z e : 1 2 ;
l a b e l −c o l o r−r a n g e : cyan , b l u e ;
l a b e l −c o l o r−a t t r i b u t e : " d e g r e e " ;
}
Note that in the above snippet labels are configured to be positioned above the nodes’ visual
representations, using the nodes’ “name” attribute as their text, which is to be rendered with a
12-point boldfaced Trajan Pro font. The color of the labels, in turn, are set to be interpolated
between cyan and blue according to each node’s “degree” attribute. Since no easing curve was
specified, a default linear interpolation is used.
A.3.1 Changing the Appearance of Node Shapes
As with regular CSS files, in GraphCoiffure stylesheets, SVG elements can be accessed by
their id and have their visual attributes (i.e., their stroke and fill) changed. In the current version
of the prototype, the stroke is referred as the pen and the fill as the brush. This nomenclature
was used instead of the CSS-standard “stroke” and “fill” to simplify implementation (since
these terms match the underlying Qt-based code) and can change in subsequent iterations of the
prototype.
As with node size and label color (see section A.3.0.1), the width of the pen and the color of
108
Table A.2: Stylesheet declarations concerning node label.Declaration Name Possible Values Descriptionlabel-attribute String (text contained within quotes) containing the
name of a node attribute, “degree,” or “id”Attribute whose content will be used as the label’stext. If no label-attribute is given, the node’s id isused by default.
label-color A color, given as a color name (e.g., red, green, etc.),hexadecimal value (e.g., #00FFFF), or RGB tuple(e.g., rgb(255,184,0))
Color the label will be displayed in.
label-color-attribute String (text contained within quotes) containing thename of a real or integer node attribute or “degree”
Has to be used along with label-color-range and,optionally, label-color-range-easing-curve.The label’s color will be computed by mapping thenode’s value for the given attribute to itscorresponding value within the range specified bylabel-color-range.
label-color-range Comma-separated list of colors Used in conjunction with label-color-attribute and,optionally, label-color-range-easing-curve.Corresponds to the range of colors node labels can berendered in. The provided colors define specificstops within the range. Other colors are interpolatedusing the function defined inlabel-color-range-easing-curve.
label-color-range-easing-curve
One of the following keywords: Linear, InQuad,OutQuad, InOutQuad, OutInQuad, InCubic,OutCubic, InOutCubic, OutInCubic, InQuart,OutQuart, InOutQuart, OutInQuart, InQuint,OutQuint, InOutQuint, OutInQuint, InSine, OutSine,InOutSine, OutInSine, InExpo, OutExpo, InOutExpo,OutInExpo, InCirc, OutCirc, InOutCirc, OutInCirc,InElastic, OutElastic, InOutElastic, OutInElastic,InBack, OutBack, InOutBack, OutInBack, InBounce,OutBounce, InOutBounce, OutInBounce
Optionally used in conjunction withlabel-color-attribute and label-color-range.Corresponds to the easing curve used by theinterpolator in finding colors between the stopsspecified in label-color-range. If nolabel-color-range-easing-curve is provided, linearinterpolation is used.
label-horizontal-alignment
One of the following keywords: Left, Center, Right Defines how the label will be positioned horizontallyin relation to the node’s shape.
label-vertical-alignment
One of the following keywords: Above, Center,Below
Defines how the label will be positioned vertically inrelation to the node’s shape.
label-horizontal-padding
Real or integer number Horizontal padding between the label and the nodeshape.
label-vertical-padding Real or integer number Vertical padding between the label and the nodeshape.
label-font-family List of comma-separated keywords (for fonts with asingle word name) and strings (for fonts withmultiple-word names)
List of font family names, in order of preference
label-font-style One of the following keywords: Normal, Italic,Oblique
Style of the glyphs that are used to display text.
label-font-weight Integer number, or one of the following keywords:Light, Normal, DemiBold, Bold, Black
Determines font weight, using a value that is eitherpredefined (using the keywords) or explicitly given(using an integer number).
label-font-size Real or integer number Specifies the point size of the label’s font.
label-font-capitalization
One of the following keywords: MixedCase,AllUpperCase, AllLowerCase, SmallCaps,Capitalize
Specifies if any sort of capitalization should be used.
label-letter-spacing-type
One of the following keywords: PercentageSpacing,AbsoluteSpacing
Used along with label-letter-spacing.With PercentageSpacing, a label-letter-spacing valueof 100 will keep spacing unchanged, while a value of200 will enlarge spacing after a character by thewidth of the character itself.With AbsoluteSpacing, a positive value increasesspacing by the corresponding pixels, while a negativevalue decreases it.
label-letter-spacing Real or integer number Used in conjunction with label-letter-spacing-type.
label-stretch Integer number, or one of the following keywords:UltraCondensed, ExtraCondensed, Condensed,SemiCondensed, Unstretched, SemiExpanded,Expanded, ExtraExpanded, UltraExpanded
Stretch factor, which changes the width of thecharacters by a given percent. The keywords standfor predefined stretch factor values.
label-strike-out Either true or false If true, strike-out is on.
label-underline Either true or false If true, underline is on.
109
both the pen and the brush can be defined explicitly or by mapping user-chosen node attributes
to values within user-given ranges. Pen and brush declarations are described in detail in tables
A.3 and A.4, respectively.
As previously mentioned, node shapes are SVG elements. They can as such be accessed by
their ids. The code snippet below shows how pen declarations can be used in our reproduction
of Elms’s graph (2008) to change the way nodes are drawn. Namely, we make their borders
thicker, set them to be drawn as dotted lines instead of straight lines, and change their color to
red. Notice that “default_circle” appears in the selector after the node keyword, indicating that
we are manipulating the SVG element that has “default_circle” as its id. Results of applying
this code on the graph can be seen in Figure A.10.
node d e f a u l t _ c i r c l e {
pen−wid th : 4 ;
pen−s t y l e : DotLine ;
pen−c o l o r : r e d ;
}
As an example of the brush declarations, the following code shows how they can be used
to change the appearance of elements of node shapes based on their SVG ids. In the code,
the “head_background” element of the “mushroom” is made to have its color dependent on
each node’s degree, interpolating among blue, white, and red. Results of the application of the
stylesheet with these modifications on Elms’s graph (2008) can be seen in Figure A.11.
node mushroom_mushroom head_background {
brush−c o l o r−a t t r i b u t e : " d e g r e e " ;
brush−c o l o r−r a n g e : b lue , whi te , r e d ;
}
A.3.2 Changing the Appearance of Edges
The edge selector is responsible for defining the appearance of edges. Since edges are lines
from a source node to a target node, edge rulesets include only pen (i.e., stroke) declarations (de-
scribed in detail in Table A.3). Support for curved and directed edges and for more customized
drawing styles may be added to GraphCoiffure in the future.
110
Figure A.10: Node shapes of our reproduction of Elms’s graph (2008) are changed by usingstylesheet declarations that alter the default stroke/pen.
Figure A.11: The SVG ids of individual elements of node shapes are used to change the lookof the nodes of our reproduction of Elms’s graph (2008) by altering the brush/fill that is used topaint the upper part of the mushrooms.
111
Table A.3: Stylesheet pen declarations.Declaration Name Possible Values Descriptionpen-width Real or integer number Specifies the pen width (thickness).
pen-width-attribute String (text contained within quotes) containing thename of a real or integer attribute
Has to be used along with max-pen-width andmin-pen-width.The width will be computed by mapping the valuefor the given attribute to its corresponding valuewithin the range established by max-pen-width andmin-pen-width.
max-pen-width Real or integer number Used in conjunction with pen-width-attribute.Corresponds to the maximum width that the pen canhave.
min-pen-width Real or integer number Used in conjunction with max-width-attribute.Corresponds to the minimum width that the pen canhave.
pen-color A color, given as a color name (e.g., red, green, etc.),hexadecimal value (e.g., #00FFFF), or RGB tuple(e.g., rgb(255,184,0))
Color the pen will draw in.
pen-color-attribute String (text contained within quotes) containing thename of a real or integer node attribute or “degree”
Has to be used along with pen-color-range and,optionally, pen-color-range-easing-curve.The pen’s color will be computed by mapping thenode’s value for the given attribute to itscorrespondent value within the range specified bypen-color-range.
pen-color-range Comma-separated list of colors Used in conjunction with pen-color-attribute and,optionally, pen-color-range-easing-curve.Corresponds to the range of colors the pen can drawin. The provided colors define specific stops withinthe range. Other colors are interpolated using thefunction defined in pen-color-range-easing-curve.
pen-color-range-easing-curve
One of the following keywords: Linear, InQuad,OutQuad, InOutQuad, OutInQuad, InCubic,OutCubic, InOutCubic, OutInCubic, InQuart,OutQuart, InOutQuart, OutInQuart, InQuint,OutQuint, InOutQuint, OutInQuint, InSine, OutSine,InOutSine, OutInSine, InExpo, OutExpo, InOutExpo,OutInExpo, InCirc, OutCirc, InOutCirc, OutInCirc,InElastic, OutElastic, InOutElastic, OutInElastic,InBack, OutBack, InOutBack, OutInBack, InBounce,OutBounce, InOutBounce, OutInBounce
Optionally used in conjunction withpen-color-attribute and, optionally,pen-color-range.Corresponds to the easing curve used by theinterpolator in finding colors between the stopsspecified in pen-color-range. If nopen-color-range-easing-curve is provided, linearinterpolation is used.
pen-style One of the following keywords: SolidLine,DashLine, DotLine, DashDotLine, DashDotDotLine,CustomDashLine
Specifies the dot/dash pattern the line will be drawnin. The keyword CustomDashLine can be used with ,pen-dash-pattern to use a custom pattern.
pen-dash-pattern A specially formatted string. Used in conjunction with a CustomDashLinepen-style. A dash pattern is a string of even blocksof the characters “-” and “_”, representing,respectively, dashes and whitespace. Examples:“–__”, “—-____-____”, “-______”
pen-cap-style One of the following keywords: SquareCap,FlatCap, RoundCap
Determines how the end-points of lines are drawn.SquareCap is a square line end that covers the endpoint and extends beyond it by half the line width;FlatCap is a square line end that does not cover theend point; RoundCap is a rounded line end thatcovers the end point.
pen-join-style One of the following keywords: BevelJoin,RoundJoin, MiterJoin
Defines how joins between two connected lines aredrawn. BevelJoin fills the triangular space betweenthe two lines; RoundJoin fills a circular arc betweenthe two lines; MiterJoin extends the lines to meet atan angle. For MiterJoin to be used, apen-miter-limit has to be specified.
pen-mite-limit Real or integer number Used in conjunction with a MiterJoin pen-join-style.Determines how far the miter join can extend fromthe join point.
112
Table A.4: Stylesheet brush declarations.Declaration Name Possible Values Descriptionbrush-style One of the following keywords: SolidPattern,
Dense1Pattern, Dense2Pattern, Dense3Pattern,Dense4Pattern, Dense5Pattern, Dense6Pattern,Dense7Pattern, NoBrush, HorPattern, VerPattern,CrossPattern, BDiagPattern, FDiagPattern,DiagCrossPattern
Defines the fill pattern of the brush.
brush-color A color, given as a color name (e.g., red, green, etc.),hexadecimal value (e.g., #00FFFF), or RGB tuple(e.g., rgb(255,184,0))
Color the brush will paint in.
brush-color-attribute String (text contained within quotes) containing thename of a real or integer attribute
Has to be used along with brush-color-range and,optionally, brush-color-range-easing-curve.The brush’s color will be computed by mapping thevalue for the given attribute to its correspondentvalue within the range specified bybrush-color-range.
brush-color-range Comma-separated list of colors. Used in conjunction with brush-color-attribute and,optionally, brush-color-range-easing-curve.Corresponds to the range of colors the brush canpaint in. The provided colors define specific stopswithin the range. Other colors are interpolated usingthe function defined inbrush-color-range-easing-curve.
brush-color-range-easing-curve
One of the following keywords: Linear, InQuad,OutQuad, InOutQuad, OutInQuad, InCubic,OutCubic, InOutCubic, OutInCubic, InQuart,OutQuart, InOutQuart, OutInQuart, InQuint,OutQuint, InOutQuint, OutInQuint, InSine, OutSine,InOutSine, OutInSine, InExpo, OutExpo, InOutExpo,OutInExpo, InCirc, OutCirc, InOutCirc, OutInCirc,InElastic, OutElastic, InOutElastic, OutInElastic,InBack, OutBack, InOutBack, OutInBack, InBounce,OutBounce, InOutBounce, OutInBounce
Optionally used in conjunction withbrush-color-attribute and brush-color-range.Corresponds to the easing curve used by theinterpolator in finding colors between the stopsspecified in brush-color-range. If nobrush-color-range-easing-curve is provided, linearinterpolation is used.
A.4 Working with Graph Layouts
Graphs that are opened with GraphCoiffure can either already have a layout or not. In the
latter case, an initial force-directed layout will be applied by default.
GraphCoiffure supports several layout algorithms, such as random, circular, spectral, and
force-directed (Fruchterman-Reingold (FRUCHTERMAN; REINGOLD, 1991)), all of which
being accessible from the Layout menu. The force-directed layout, in particular, may require
configurations. This can be done through a dialog that is also accessible from the Layout menu,
from which users can define a list of nodes whose positions will remain fixed, choose an edge
attribute to be used as weight, and set algorithm parameters such as number of iterations and
optimal node distance.
The traditional Fruchterman-Reingold force-directed algorithm (FRUCHTERMAN; REIN-
GOLD, 1991) runs only for a given number of iterations. Besides this version, GraphCoif-
fure includes an interactive variation that keeps the physics engine running until it is explicitly
stopped, with node positions being updated in real-time. Its configuration dialog is similar to the
non-interactive version, but with more options to control the physics simulation, letting users
113
defined which nodes should be affected as well as change the magnitude of attraction, repul-
sion, and gravity forces. It can be started and stopped from the Layout menu, from which its
configuration dialog can also be accessed. This algorithm is particularly useful to “smooth out”
a layout or make changes to it in combination with a physics-based tool.
A.4.1 Adjusting Graph Size and Node Spacing
There are two ways users can adjust the size of a graph: scaling the entire image or scaling
only the positions of the nodes (i.e., changing the spacing between the nodes without applying
any transformation to the shapes themselves). In both cases, non-uniform scaling is done by
clicking and dragging the handles that surround the graph’s area and uniform scaling is per-
formed with the handle positioned at the exact center of the graph’s area. The type of scaling
used is set in the Workspace menu. The two types are illustrated in Figure A.12.
A.4.1.1 Groups
Sometimes simply moving nodes around by hand is not a practical way to touch up the
graph’s layout. To make localized layout manipulation easier, a node group can be created
from a selection of nodes and edges. Node groups can be moved, stretched, or rotated, allowing
for the layout of specific regions of the graph to be more easily reconfigured.
A node group can be created by selecting the objects that should be a part of it and choosing
the “Create Node Group” option from the Selection menu. Upon creation, each group must be
given a unique name. Using the corresponding options in the Selection menu, nodes can be
added or removed from a group and groups can be “ungrouped” (i.e., destroyed). If a node is
part of a node group, the group’s name will appear on the node’s respective “group” column on
the node selection panel.
Node groups are visually distinguished by a light gray bounding box that is displayed around
its nodes, with the group’s name appearing above the box’s top-left corner (Figure A.13). As
with the graph itself, when the group is selected handles are displayed on key positions of the
bounding box (its corners, sides, and center) and can be clicked and dragged to change the
group’s size. Unlike with the whole graph, however, node group scaling only works on node
positions, not changing the size of the nodes themselves (Figure A.14). Besides scaling, a group
can also be rotated by clicking and dragging inside its area with the right mouse button (Figure
A.15).
114
(a) Scaling objects.
(b) Scaling only object positions.Figure A.12: Adjusting graph size and node spacing by scaling.
116
Figure A.15: Node group rotation.
Users may sometimes wish to apply a layout algorithm on a particular subgraph. This can
be done with node groups, by first selecting the group that contains the nodes of the desired
subgraph and then choosing a layout from the Layout menu. Edges to nodes outside the group
will be ignored and the new layout will use the group’s original area as a basis for its size and
position. An example of a layout algorithm applied to a node group can be seen in Figure A.16).
It is important to note that edge groups can also be created. Since the position of edges
is dependent of their nodes, however, these groups cannot be used to manipulate the layout
(i.e., they cannot be moved and rotated and their layouts cannot be altered). They can be useful,
though, for manipulating the graph’s appearance, as can be seen in section A.3. Edge groups are
displayed as red bounding boxes. Creation, destruction, and addition and removal of elements
of edge groups are analogous to these operations with node groups. An edge group can be seen
in Figure A.17.
117
Figure A.16: Application of a force-directed layout on a node group.
Figure A.17: An edge group comprising edges ‘Ger’-‘Lat’, ‘Lit’-‘Lat’, ‘Hun’-‘Lat’, and ‘Est’-‘Lat’.
118
A.4.2 Physics-based tools
GraphCoiffure offers two interactive physics-based tools to manipulate layouts: repellers
and magnets. These tools are special items that seize on a force-directed engine to affect the
graph’s layout.
Repellers make all of the nodes that are within its radius move away from it and from one
another. Once an item is outside the repeller’s radius, it ceases to be affected by it. Repellers
may be useful to unclutter regions of the graph that are particularly dense with nodes and edges,
making them easier to understand. A repeller is activated and deactivated by double-clicking
on it. Its radius can be changed from the menu or using the ’+’ and ’-’ keys when it is selected.
Upon its creation, a dialog box asks users to choose whether it will affect the entire graph or a
single node group. A repeller can be created by choosing the corresponding command from the
Layout menu. An example of a repeller in use can be seen in Figure A.18.
Magnets, in turn, attract a selection of nodes. Attracted nodes are kept from overlapping
one another by repulsion forces that are exerted on them by each node of the graph. Particularly
when used in conjunction with the interactive force-directed layout, magnets can be help users
reorganize a graph’s layout based on the attributes of the nodes and edges or any criteria users
Figure A.18: A repeller being used to create some space between nodes.
119
Figure A.19: A magnet attracting the nodes labeled ‘Dut’, ‘Ger’, ‘Lit’, ‘Sb’, ‘Alb’, ’Rom’, and’Grk’.
may have, being an important way to make GraphCoiffure support requirement ??. Like with a
repeller, a magnet can be turned on or off by double clicking on it. Its attraction strength can be
increased or decreased from the menu or using the “+” and “-” keys. A magnet can be created
by selecting the nodes that it should attract and choosing its respective option from the Layout
menu. An example of a magnet being used to touch up a layout can be seen in Figure A.19.
A.5 Presentation Aids
Presentation aids are visual helpers that aid visualizations in communicating their messages.
A particularly common type of presentation aid is the annotation, which consists simply of a
block of text that comments on or describes the image it accompanies. As of this moment, it is
the only type of presentation aid supported by the GraphCoiffure prototype.
In GraphCoiffure, annotations can be bound to the graph as a whole or to a chosen node
group. When associated to a group, the annotation’s position will always be relative to the
group’s (i.e., when the group is moved, the annotation will move along with it). Moving an
annotation can be done by clicking and dragging and its text can be changed by double-clicking
120
on it.
Annotations are created from application menu, but their styling is defined in the stylesheet
with the annotation selector. To define the appearance of annotations having a specific identifier
or belonging to a specific group, the annotation[id=<id>] and annotation[group=<group_name>]
variations of the selector are respectively used. Annotation properties include color and font
properties analogous to those of node labels. Since annotations are not directly linked to nodes
or edges, attribute-based properties are not available.
Support for other types of presentation aids, such as legends describing what different visual
attributes mean or providing indications of the location of specific nodes/edges in the visualiza-
tion, may be added in the future.
A.6 Generating the Output Image
Visualizations made with the GraphCoiffure prototype can be exported to SVG files. This
format was chosen for its flexibility. It is a vectorial (and thus resolution-independent) stan-
dard that is supported by most graphics authoring tools, facilitating modifications beyond those
possible with GraphCoiffure and being highly usable for most applications.
It is important to note that exported SVG files include only the graph and presentation aids.
Page structure schemas, group boundaries, and items such as magnets and repellers do not
appear in the generated image.
A.7 Implementation
The GraphCoiffure prototype was developed in Python 3.3 using the PySide bindings for
the C++ Qt framework. For GraphCoiffure’s graphs, the NetworkX library was used. The
stylesheet system was implemented with the TinyCSS library, while Qt’s XML classes and the
pyparsing library were used for the SVG parser. The physics engine, in turn, was implemented
using the numpy and scipy libraries.