Skip to content

Reducing SnapshotsTemporal Network Visualization

Ahmed Behairi
TU Wien
193.166 Visualisierung 2025W

Feature Screenshot 1Feature Screenshot 2

What This Tool Does ​

This application visualizes temporal network dataβ€”datasets where entities interact over time (e.g., contact networks, communication logs, transaction records).

The tool divides the data into time windows, creates a network snapshot for each window, and uses UMAP to project these snapshots into 2D. The result is a scatter plot where each point represents a network state at a specific time. Points that are close together have similar network structures.

Main interface showing 2D projection with connected trajectory

Data Pipeline ​

  1. Discretization β€” The input CSV is divided into overlapping time windows. Each window becomes a snapshot.
  2. Graph Construction β€” For each snapshot, a weighted undirected graph is built. Edge weights represent interaction frequency.
  3. Vectorization β€” Graphs are converted to vectors by flattening their adjacency matrices.
  4. Dimensionality Reduction β€” UMAP projects these high-dimensional vectors into 2D coordinates.

How to Use ​

  • Pan and Zoom: Drag to pan, scroll to zoom in the projection view.
  • Click a Point: Opens the snapshot view showing the network graph at that time.
  • Click a Node: In the snapshot view, clicking a node highlights its activity across time in the projection view.
  • Enable Brush: Click the brush icon (top-left) to enter selection mode. Drag to select multiple snapshots.
  • View Analytics: When snapshots are selected, the analytics panel shows metrics like average degree, density, and top nodes.
  • Stability Chart: Hover to see exact values. Click to jump to that snapshot.
  • Controls Drawer: Click the settings icon to adjust time window, overlap, and color property.

Split view with projection and snapshot graph

Implementation ​

ComponentTechnologyPurpose
Build ToolVite + TypeScriptDevelopment server and bundling
VisualizationD3.jsScatter plots, force-directed graphs, line charts
Dimensionality Reductionumap-jsProjects adjacency vectors to 2D
State Managementalien-signalsReactive updates between views
UI ComponentsShoelaceDrawer, buttons, form elements
ProcessingWeb WorkersRuns pipeline off main thread

Architecture ​

The main thread handles rendering. A Web Worker performs the CPU-intensive pipeline (discretization, vectorization, UMAP). State signals synchronize the projection view, snapshot graph, stability chart, and analytics panel.

Configuration ​

To use a custom dataset, create a public/config.js file:

javascript
export default {
  url: "/your-data.csv",
  fields: {
    timestamp: "time",
    source: "from",
    target: "to",
  },
  visuals: {
    colorBy: [
      { label: "Type", value: "type", type: "categorical" }
    ],
    tooltipFields: ["type"],
  },
  timeFormat: "JS",
  initialConfig: {
    timeWindow: 3600000,
    alpha: 0.8,
    colorProperty: "type",
  },
};

The CSV must have columns for timestamp, source node, and target node. Additional columns can be used for coloring and tooltips.

References ​

Paper ​

Reducing Snapshots for Temporal Network Visualization
This tool implements techniques based on the research paper:

van den Elzen, S., & van Wijk, J. J. (2016). Reducing Snapshots to Points: A Visual Analytics Approach to Dynamic Network Exploration. IEEE Transactions on Visualization and Computer Graphics.
DOI: 10.1109/TVCG.2015.2468078

Libraries ​

Visualization Project for Temporal Network Analysis