demo D166
Sankey, chord and network in ESM
Relationships between categories
type, source, target, y
This shows relationships between categories as a sankey, a chord diagram and a network. It makes the connections in the data visible, how volume moves from one category to another, which rows and columns alone do not show.
This is the ES module version. The grid is imported straight from a CDN as a module, the same configuration as the vanilla tab without a global script tag, so it drops into any bundler or a bare module script.
The configuration
<link rel="stylesheet" href="https://cdn.latticegrid.dev/lattice-grid@1.107.0/lattice-grid.min.css">
<div id="grid" style="height: 340px"></div>
<div id="chart" style="height: 320px"></div>
<script type="module">
import { createGrid } from 'https://cdn.latticegrid.dev/lattice-grid@1.107.0/lattice-grid.esm.min.js';
import { createChart } from '@toclocoinc/lattice-grid/modules/charts';
const grid = createGrid(document.getElementById('grid'), {
rowKey: 'id',
columns: [
{ field: 'region', title: 'Region', filter: { type: 'set' } },
{ field: 'status', title: 'Status', filter: { type: 'set' } },
{ field: 'bandwidth', title: 'Bandwidth', type: 'number' },
{ field: 'utilisation', title: 'Utilisation', type: 'number', format: { decimals: 1, suffix: '%' } },
{ field: 'charge', title: 'Monthly charge', type: 'number',
format: { style: 'currency', currency: 'GBP' }, total: 'sum' },
],
rows, // circuits: region, status, bandwidth, utilisation, charge
});
// A chart reads the grid's filtered rows and redraws when the grid changes.
// Flow charts take source and target rather than x. sankey, chord and network
// all read the same three fields.
createChart({
grid,
container: document.getElementById('chart'),
type: 'sankey',
source: 'region',
target: 'status',
y: 'charge',
title: 'Charge from region to status',
});
</script>