Up till now, in Data Visualization and Analysis, we have discussed data in which data points were independent of one another. For such data points, we used the visualizations like scatterplots, dot plots, etc.

However, since we live in a connected world, and the data is relational, means that the relationship between the points is what matters the most. Everything is connected in a network form, such as Online Social Networks, Information Networks, Computer Networks, etc. But what exactly is a network? Network is any collection of objects in which some pairs of these objects are connected by links. [Easley and Kleinberg, 2011]

## Visualizing Relations

Why we visualize relations?

- Visualizing data: seeing the patterns between the data values and attributes that emerge and associate or disassociate in some way
- Visualizing relations: when how one datum relates to another is an element in itself

By visualizing relations we see the overall structure of the data set and the patterns that emerge from structure as well as from values/attributes.

## Graphs and Networks

In the field of Information Visualization, any number of data sets can be modeled as graphs.

- Telephone system
- World wide Web
- Distribution network for online retailer
- Call graph of a large software system
- Semantic Map in an AI Algorithm
- Set of Connected friends
- Social Networks

## Some examples of Graph Visualization

### Gene Network

### Internet

There are many more examples in which the data is inter-connected in a form of a network, and can be visualized in the above shown ways. Other examples include, process flow diagrams, computer networks, etc.

## Definition of Graphs

Graphs are one of the most powerful and most popular way to represent or visualize networks. They are well-suited for topology-related problems. The distance through the network, propagation and clusters are defined by the connectivity.

A graphs consists of a collection of vertices (or nodes) V and set of edges E, consisting of vertex pairs. An edge connects two vertices *x *and *y*. Graphs can have cycles, can either be directed or undirected, degree of a vertex can either be equal or not equal to the connected nodes (it will be in-degree or out-degree for directed graphs), graphs can have weights or values which can wither be ordinal, nominal, or quantitative. There are other definitions such as acyclic graphs, trees, node depths, hierarchy etc.

## Why graph layout is important?

Graphs layout is important whilst creating graph visualizations, so that appropriate relations are maintained, clutter is avoided, and data is put in perspective. If there are random layouts, it may lead to a hairball problem, which is difficult to understand due to its randomness.

### Graph Visualization Considerations

- Crossings must be minimized towards the planar
- Total edge length must be minimized towards a proper scale
- Area must be minimized towards efficient use of space
- Minimize the longest edge
- Minimize the variances
- Minimize orthogonal towards the straight-line

### Graph Visualization Problems

**Graph layout and positioning**

– Make a concrete rendering of abstract graph**Scale**

– Not too much of a problem for small graphs, but large ones are much tougher**Navigation/Interaction**

– How to support user changing focus and moving around the graph**Rank Assignment**

– Compute which nodes have large degree, put those at center of clusters**Crossing Minimization**

– Swap nodes to rearrange edges**Subgraph Extraction**

– Pull out cluster of nodes**Planarization**

– Pull out a set of nodes that can lay out on plane

Besides the above “Graph Drawing” considerations some other important goals of Graph Visualizations are to effectively depict the graph structure:

- Connectivity, path-following
- Topological distance
- Clustering / grouping
- Ordering (e.g., hierarchy level)

## Concluding

The above tutorial was an overview about the graphs and networks, and what are the considerations whilst drawing a graphs. This tutorial also explains why is it important to visualize relations. This tutorial will be continued, in which Node-Link layouts will be discussed along with Sugiyama Layouts. These layouts will help better understand the graphs and its layouts.

I hope you liked the tutorial, for feedback, email at immadshahid@gmail.com, or write in the comments below. See you in the next tutorial.