Skip to content

Charts

Multidimensional, hierarchy and geography

The three families here need something outside the rows — a shared scale, a parent/child relation, or a map — so each one states exactly what the caller must supply and refuses to guess.

Pairwise relationships

A scatterplot matrix is n × (n − 1) grids: the diagonal is left out because a variable against itself carries no information, and a diagonal of histograms would double the render cost for a decoration.

Scatterplot matrix

Four measures, twelve cells, shared axes per row and column so a correlation reads as a slope. Past six variables, use parallel coordinates.

Hierarchy

A dendrogram, a file tree or an org chart. The engine supplies the layout and the collapse interaction — geometry, not statistics — and LUC supplies the label model and the tone contract.

Hierarchy

Leaves take their colour from their own tone, so the same shape can serve an editing tree and a JSON inspector.

Geography

LUC ships no map data: a boundary file is large, it carries a licence, and bundling one would impose a particular political boundary set on every consumer. Registration is therefore the caller's explicit step.

Geographic scatter

Registered by this page from a synthetic grid, which proves the mechanism without shipping a boundary set.

Nothing to plot

Register a map with registerEChartsMap, then supply points.

How to use it

Register once, before the first render, then scatter. A choropleth additionally needs a value per region, which is a different contract — see the roadmap below.

import { registerEChartsMap, GeoScatterChart } from "@luc/ui/charts"; // Once, before the first render. await registerEChartsMap("world", worldGeoJson); <GeoScatterChart mapName="world" points={offices} />

Blocked: a choropleth needs region data plus a registered map, and a 3D surface needs echarts-gl (~180 KB). Neither is in the base entry point, and neither will be bundled by default.

Luc UI v1.0Multidimensional, network & hierarchydark theme