demo D174
Small multiples in ESM
One chart per category, on a shared scale
multiples: col
This draws one small chart per category on a shared scale, laid out as a grid of charts. It lets you compare many groups at once without overlaying them, so each category reads on its own but against the same yardstick.
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.
// multiples names a column; the chart splits into one small chart per distinct
// value of it, all on a shared scale so they compare.
createChart({
grid,
container: document.getElementById('chart'),
type: 'bar',
x: 'status',
y: 'charge',
multiples: 'region',
title: 'Charge by status, per region',
});
</script>