5. Trees and Graphs
how do we create a force directed graph (basics here)?
- Edges are modeled as springs - To help avoid overlaps, nodes are modeled to electrically repel each other - Final positions are found by simulating the resulting forces
some typical design goals of node-link diagrams for trees (5)
- Nodes at same depth share the same vertical position - Horizontal whitespace communicates hierarchy - Minimize required area - Minimize total length of edges - Achieve good aspect ratio
drawbacks of treemaps?
- difficult to accurately read depth -Naïve splitting can lead to rectangles with poor aspect ratios
three approaches to recursive/rooted trees?
- node link - indentation - enclosure (treemaps)
benefits of treemaps?
- provides single view of entire tree - easy to tell "size" of node - easy to encode additional attributes (color)
how to resolve ambiguities in edge bundling? (3)ex
-Continuously adjusting edges using a bundling strength β ∈ [0,1] resolves this -filtering -controlling transparency
different kinds of attributes that a graph can be?
-directed/undirected -weighted/unweighted -cyclic/acyclic -connected
Explain the Reingold-Tilford algorithm in steps
-given a L and R subtree -shift them a fixed horizontal difference which is determined by threading -center parent between them
what are the 5 aesthetic goals of Reingold-Tilford
-nodes at same level should be aligned -maintain the relative ordering of L and R subtrees -parent should be centered over the children -a tree and its mirror image should be drawn as reflections of each other -a subtree should be drawn the same way regardless of where it occurs in the tree
how to show edge bundling?
-start with standard tree layout for hierarchy -use the path along the tree to control the polygon for the shape
What is a thread in the context of the Reingold-Tilford algorithm? What purpose does it serve?
A Reingold-Tilford "thread" is the way to find an appropriate distance between two subtrees that will look aesthetically pleasing. Basically, it requires going through the inner contours of each of the two subtrees, finding a leaf, then storing the thread as a pointer to one depth higher in that contour. That pointer marks the level that will require the maximum distance between the trees, so you know how far to space the two subtrees out.
describe the basic treemap algorithm
A basic treemap algorithm recursively fills available space based on a size metric for nodes - Simplest case: Alternate between horizontal and vertical splits
Force-directed graph layout uses an electrical repulsion term that is often set to zero for nodes whose current distance exceeds a certain threshold. Name two reasons for this truncation.
A threshold keeps the node within the image and also produces faster results and leads to improved results because by neglecting those beyond a certain range, you are reducing the computational complexity.
limits of bundling strength and meaning
Beta [0,1] closer to 0, the straighter it becomes, closer to 1, the curvier it becomes Low bundling strength mainly provides low-level, node-to-node connectivity information, whereas high bundling strength provides high-level information
what is cushion shading?
Cushion shading supports perception of hierarchies I = Ia + Id max(0, n ⋅ l) also allows addition of frames and interaction
what is the Grid Variant of the Force directed layout? what is its purpose/advantages?
Divide plane into grid cells and only compute repulsive forces between nodes in the same cell it's a speedup method- it's faster and also produces better results for disconnected graphs
major drawback of squarified treemaps/ST? Solution?
Drawback: Hierarchical structure even more difficult to perceive solution: cushion shading
describe the bubble tree layout
Each inner node becomes the center of all its children, makes it easy to distinguish subtrees (like those brand ownership things you see)
What if you have hierarchical (inclusion) and non-hierarchical (adjacency) relationships at the same time?
Edge bundling: Bundle together edges that originate from or end in similar parts of the hierarchy
the general algorithm for force directed layout:
Initialize (randomly or through a heuristic) For each node: -sum all attractive and repulsive forces -multiply overall force by step size/temperature -impose a maximum displacement (so to keep the points within the image) -move node Adjust temperature
major issue with treemaps? solution?
Naïve splitting can lead to rectangles with poor aspect ratios solution is Squarified treemaps
describe a layered layout
Nodes of Directed Acyclic Graphs can be organized in layers (topological sort) - Assign vertical position to each layer - Suggests a hierarchy, similar to tree visualization
goal of force directed graph layouts?
Place groups of strongly connected nodes close to each other, preserve minimum distance between nodes
what are Quenching and Simmering?
Quenching is a rapid "cooling" so quick lowering of the temperature/step size at first Cooling is a constant low temperature following quenching together they create really big changes at first and then smaller changes once the graph gets closer to where it is supposed to be
why are rooted trees nice?
Recursion makes it elegant and fast to draw trees
what is the name of the tree Aesthetics?
Reingold-Tilford
how do squarified treemaps or ST sort siblings?
ST sorts sibling nodes by size
Briefly explain a benefit and a drawback of the squarified treemaps algorithm compared to classical treemaps.
Squarified treemaps are better than classical treemaps in that they don't lead to rectangles that are difficult to see when they are too tall and thin or too short and wide. They use squares instead to improve visualization. However, finding an optimal solution to make everything for "square" is NP hard, and the hierarchical structure, when looking at a very nested treemap, is actually a bit harder to see in squarified treemaps.
what are squarified treemaps? what is the complexity otherwise?
Squarified treemaps: greedy heuristic to favor squares over elongated rectangles otherwise finding optimal solution is NP Hard
define treemaps
Treemaps encode structure using spatial enclosure- better use of screen space
another word for non-hierarchical relations?
adjacency
example of Edge Bundling in Comparative Genomics
bundles edges from the same source block that are preserved in the same target chromosome
radial layout for edge bundling?
can be used for control polygons; nodes mirrored to the outside for labeling
define a tree
connected acyclic graph which often represents a hierarchical structure
what is synteny?
conservation of genomic features
pro and con of Reingold-Tilford?
easy to understand but can lead to weird aspect ratios
another word for hierarchical relations?
inclusion
example of edge bundling in neuroimaging
iteratively move similar edges in 3D fMRI connectivity graphs towards each other
downsides of indentation methods for trees?
lots of scrolling large imbalanced suboptimal use of space
biological example of something that might use a layered layout?
metabolic pathways
alternative to the Reingold-Tilford tree?
non-level based tree- looks like a robot drew it because it's all boxy and going in different directions
two alternative ways for node-link layouts?
radial layout bubble tree layout
what are sunburst displays?
space filling layout where root is center and nested rings around it show hierarchy space filling like a treemap but layout similar to radial node-link layout
what physical system motivates force directed graphs?
spring
what is comparative genomics?
synteny between genomes
primary concern of graph visualization?
the spatial layout of nodes and edges
what is the overall goal of Reingold-Tilford
tidier drawings of trees
can we apply Reingold Tilford to radial layout?
yes!
describe radial layout
• node-link diagram in polar coordinates • radius encodes depth with root in center • angular sectors assigned to subtrees
describe the indentation method for trees
• place all items along vertically spaced rows • indentation used to show parent/child relationships • commonly used as a component in user interfaces • breadth and depth contend for space