Adjacency Matrix
What is an Adjacency Matrix?
An adjacency matrix is a powerful grid-based visualization where rows and columns represent nodes, and cells indicate connections between them. This compact representation excels at revealing dense clusters, structural patterns, and overall network density that can be difficult to see in node-link diagrams.
Why Use Adjacency Matrices?
Adjacency matrices excel when you need to:
- Detect clusters: Reordering rows and columns reveals tightly connected groups as dense blocks along the diagonal.
- Analyze density: Instantly assess how densely connected different parts of your network are.
- Compare subgroups: See connection patterns between different categories or communities at a glance.
- Handle dense networks: Avoid the "hairball" problem—matrices remain readable even when node-link diagrams become cluttered.
- Find structural patterns: Identify recurring motifs, bipartite structures, or hierarchical organization.
How It Works in GraphPolaris
Creating and exploring an adjacency matrix in GraphPolaris is straightforward:
- Load your graph data containing entities and their relationships.
- Generate the matrix with automatic or manual node ordering.
- Reorder and cluster: Apply reordering algorithms to group related nodes and reveal hidden structure.
- Interact and explore: Hover over cells for details, click to select, zoom into regions of interest.
GraphPolaris provides multiple ordering algorithms—alphabetical, degree-based, community detection—to reveal different aspects of your data's structure.
Visual Patterns
Understanding common visual patterns in adjacency matrices helps you quickly interpret network structure. Here are the key patterns to look for:
Diagonal Blocks (Clusters)
Dense blocks along the diagonal indicate clusters—groups of nodes that are highly connected to each other. When nodes are properly ordered, communities appear as dark squares on the diagonal.
A B C D | E F G H
┌─────────┬─────────┐
A │ ■ ■ ■ ■ │ · · · · │
B │ ■ ■ ■ ■ │ · · · · │
C │ ■ ■ ■ ■ │ · · · · │
D │ ■ ■ ■ ■ │ · · · · │
├─────────┼─────────┤
E │ · · · · │ ■ ■ ■ ■ │
F │ · · · · │ ■ ■ ■ ■ │
G │ · · · · │ ■ ■ ■ ■ │
H │ · · · · │ ■ ■ ■ ■ │
└─────────┴─────────┘
What to look for: Dark squares along the main diagonal. Larger blocks = larger communities. Well-separated blocks = distinct groups.
Off-Diagonal Blocks (Inter-cluster Connections)
Dense regions away from the diagonal show connections between different clusters. These reveal how communities interact with each other.
A B C D | E F G H
┌─────────┬─────────┐
A │ ■ ■ · · │ ■ ■ · · │
B │ ■ ■ · · │ ■ ■ · · │
C │ · · ■ ■ │ · · · · │
D │ · · ■ ■ │ · · · · │
├─────────┼─────────┤
E │ ■ ■ · · │ ■ ■ · · │
F │ ■ ■ · · │ ■ ■ · · │
G │ · · · · │ · · ■ ■ │
H │ · · · · │ · · ■ ■ │
└─────────┴─────────┘
What to look for: Dense rectangles in off-diagonal positions. Symmetric blocks (mirrored across diagonal) in undirected networks.
Bandwidth Pattern (Sequential Structure)
When connections primarily occur between nearby nodes (in some ordering), the matrix shows a band pattern around the diagonal. This indicates sequential, hierarchical, or temporal structure.
1 2 3 4 5 6 7 8
┌─────────────────┐
1 │ ■ ■ · · · · · · │
2 │ ■ ■ ■ · · · · · │
3 │ · ■ ■ ■ · · · · │
4 │ · · ■ ■ ■ · · · │
5 │ · · · ■ ■ ■ · · │
6 │ · · · · ■ ■ ■ · │
7 │ · · · · · ■ ■ ■ │
8 │ · · · · · · ■ ■ │
└─────────────────┘
What to look for: Connections concentrated near the diagonal forming a band. Narrow band = local connections only. Wide band = longer-range connections.
Star Pattern (Hub Row/Column)
A single row and column with many filled cells indicates a hub node—an entity connected to many others. Hubs appear as crosses in the matrix.
A B C D E F G H
┌─────────────────┐
A │ · · · · · · · · │
B │ · · · · · · · · │
C │ · · · · · · · · │
D │ ■ ■ ■ · ■ ■ ■ ■ │ ← Hub row
E │ · · · ■ · · · · │
F │ · · · ■ · · · · │
G │ · · · ■ · · · · │
H │ · · · ■ · · · · │
└─────────────────┘
↑
Hub column
What to look for: A row and its corresponding column filled with many connections. Multiple hubs = multiple crossing lines.
Bipartite Pattern (Two-Mode Network)
When nodes divide into two groups where connections only occur between groups (not within), the matrix shows an off-diagonal block pattern with empty diagonal blocks.
A B C D | E F G H
┌─────────┬─────────┐
A │ · · · · │ ■ ■ ■ · │
B │ · · · · │ ■ · ■ ■ │
C │ · · · · │ · ■ ■ ■ │
D │ · · · · │ ■ ■ · ■ │
├─────────┼─────────┤
E │ ■ ■ · ■ │ · · · · │
F │ ■ · ■ ■ │ · · · · │
G │ ■ ■ ■ · │ · · · · │
H │ · ■ ■ ■ │ · · · · │
└─────────┴─────────┘
What to look for: Empty diagonal blocks (no within-group connections) with filled off-diagonal blocks (all between-group connections).
Sparse vs Dense Regions
Varying density across the matrix reveals which parts of your network are more or less connected. Sparse rows/columns indicate peripheral nodes; dense regions indicate active cores.
A B C D E F G H
┌─────────────────┐
A │ ■ ■ ■ ■ ■ · · · │
B │ ■ ■ ■ ■ · · · · │ Dense
C │ ■ ■ ■ ■ ■ · · · │ core
D │ ■ ■ ■ ■ · · · · │
E │ ■ · ■ · · · · · │
├─────────────────┤
F │ · · · · · · ■ · │ Sparse
G │ · · · · · ■ · · │ periphery
H │ · · · · · · · · │
└─────────────────┘
What to look for: Contrast between heavily filled and sparsely filled regions. Completely empty rows/columns = isolates.
Clique (Fully Connected Block)
A completely filled square block indicates a clique—every node in that group connects to every other. Cliques appear as solid dark squares.
A B C D E F G H
┌─────────────────┐
A │ · · · · · · · · │
B │ · ■ ■ ■ ■ · · · │
C │ · ■ ■ ■ ■ · · · │ ← Clique
D │ · ■ ■ ■ ■ · · · │
E │ · ■ ■ ■ ■ · · · │
F │ · · · · · · · · │
G │ · · · · · · · · │
H │ · · · · · · · · │
└─────────────────┘
What to look for: Completely filled square blocks (all cells filled). Perfect cliques have no gaps.
Adjacency matrices provide a complementary view to node-link diagrams—and with GraphPolaris, you can switch between them seamlessly to gain complete understanding of your network.