Omniscope Custom Views › forcecoordinategraph

Force Coordinate Graph

A network kept where your data puts it. Nodes at their own coordinates, links bundled into the flows they make.

Network

Open the demo in Omniscope Download demo.ioz Sample data: routes.csv Source on GitHub

A network kept where your data puts it. Nodes at their own coordinates, links bundled into the flows they make.

Live: 100 depots of an invented parcel carrier, placed by their map coordinates, sized by capacity and coloured by region. Routes are bundled, and thicker for more shipments. Hover a depot to see its routes; click it to select it.

The problem it solves

A network drawn by a force layout puts nodes wherever the forces settle, so a depot in the north can end up in the south of the picture, and the layout changes with every filter. When the positions already mean something (a map location, a score, a layout worked out once in the workflow), the graph should keep them. But draw hundreds of links as straight lines between fixed points and they cross into a mesh where no flow can be followed.

The Force Coordinate Graph places every node at its own X and Y, pushes overlapping nodes slightly apart, and bundles links that run the same way into shared curves. In the illustrative carrier above (invented figures), 100 depots sit at their map positions: each depot sends to its regional hub, the five hubs trade heavily with each other, and the direct routes between regions merge into a few visible corridors. Below, the same network with straight links, coloured by capacity on a colour scale:

Live: the same network with Bundle links off and colour from a number (capacity), which gives a colour scale instead of categories.

Where it earns its place

Omniscope's built-in Network view lays out most networks well, and its Manual layout can also place nodes at X and Y values from the data. Use this view when the positions are fixed and there are too many links to read as straight lines: it bundles links that run the same way into flows and pushes overlapping nodes apart.

The examples below are illustrative.

Team Nodes at Links
Logistics Depots on a map Routes, weighted by shipments
Telecoms Exchanges or sites Traffic between them
Customer analytics Customers placed by a similarity score Referrals
Research Papers placed by topic Citations

How to use it in Omniscope

  1. Bring the data into a workflow with one record per link (and one per node with an empty link), plus each node's coordinates.
  2. Connect it to a Report block, add a view and choose Force Coordinate Graph.
  3. Set From node and To node, for example Depot and Linked depot, then X position and Y position, for example the mean of East (km) and North (km).
  4. Optionally set Colour (a category with the Singleton function, or a number), Size and Link weight.
  5. Hover a node to see its own links; click it to select it in the rest of the report.

Why do this in Omniscope

Data and options

One record per link and one per node, with the node's coordinates; up to 5,000 nodes.

Option What it does
From node, To node The two ends of a record's link; To node empty for a node-only record
X position, Y position Where the node sits
Keep nodes apart Push overlapping nodes slightly aside
Colour, Size, Tooltip, Image URL How each node looks
Link weight Line thickness, and which links are kept first
Bundle links, Links shown Curved bundles or straight lines; how many links to draw
Pane X, Pane Y One graph per value

Tested

Mock harness: 100 nodes and 209 bundled links from the sample data, the colour key, a colour scale from a number, straight links, the tooltip's figures, hover showing one node's links, selecting a depot and clearing by clicking it again and by clicking empty space, filtering to one region (colours unchanged), a lower Links shown with its note, a 260 by 180 pane (every node inside it), 3,000 nodes with 6,000 links (the 1,000 heaviest bundled), empty data, and unset options.

Selecting a hub: its routes stay, unlinked depots fade
Selecting a hub: its routes stay, unlinked depots fade

Reference

Fields it reads

NameTypeWhat it does
ColourMEASUREColours the nodes and their outgoing links: a text field with the Singleton function (for example Region) gives category colours with a key; a number gives a colour scale
Link weightMEASUREThicker lines for heavier links, for example the sum of Shipments. When there are more links than Links shown, the heaviest are kept
Image URLMEASUREAddress of a picture drawn inside the node (a text field with the Singleton function). The browser showing the report must be able to load it
To nodeGROUPINGThe node at the other end of the record's link, a value of the From node field. Leave it empty for a record that only places a node
SizeMEASURESizes the nodes by area, for example the mean of Capacity. Empty: all nodes the same size
From nodeGROUPINGOne node per value. Each record is a link from this node to To node; give every node at least one record, with To node empty if it has no links
Pane XGROUPINGOne graph per value, side by side
Pane YGROUPINGOne graph per value, one above the other
TooltipMEASUREFirst line of a node's tooltip, for example a name field with the Singleton function. Empty: the From node value
X positionMEASUREThe node's horizontal coordinate, for example the mean of East (km). Worked out in advance: the view keeps nodes near these coordinates
Y positionMEASUREThe node's vertical coordinate, for example the mean of North (km)

Options

NameTypeWhat it does
Keep nodes apartTOGGLEPush nodes that would overlap a little away from their coordinates, so none hides another
Bundle linksTOGGLECurve links that run in the same direction into shared bundles, so the main flows stand out. Off: straight lines
Links shownNUMBERThe most links drawn (default 1000, at most 5000). Bundling many links takes a few seconds

Third-party libraries