Chord Diagram
One month of data transfer between the six cloud regions of a SaaS product, both directions combined: each arc is a region, sized by all of its traffic, and each ribbon is the traffic between two regions.
TanStack Charts has no chord layout or ribbon mark. Its polar marks can draw the arcs, but the ribbons would need a custom mark that draws each path, laid out with d3-chord.
SourceRecharts has no chord chart. Its charts are Area, Bar, Composed, Funnel, Line, Pie, Radar, RadialBar, Sankey, Scatter, Sunburst and Treemap.
SourceChart.js has no chord chart type, and there is no maintained plugin for one, so it would take a custom controller.
SourceObservable Plot has no chord layout and no arc or ribbon mark, so the arcs and ribbons would have to be computed with d3-chord and drawn in a custom render function.
Vega-Lite has no chord layout and no ribbon mark, so the ribbons would have to be computed with d3-chord and drawn as geoshape polygons with an identity projection.
What to look for
- Who can draw it. Three of the nine libraries have a chord diagram. AG Charts has one in its paid Enterprise edition; TanStack Charts, Recharts, Chart.js, Observable Plot and Vega-Lite have none.
- The data. Unovis and ECharts take the same list of nodes and links as their Sankey diagrams (ECharts links them by name). Nivo takes a square matrix, so the demo builds one from the links and fills both cells of every pair.
- Colors and labels. ECharts and Nivo give every region a palette color and paint its ribbons with it; Unovis
draws the nodes in its main color and the ribbons in a pale blue, so its demo sets
nodeColorandlinkColor. Unovis curves the labels along the arcs and trims them to fit, ECharts writes them horizontally outside the ring, and Nivo along the outside of it. - Hover a region or a ribbon. All three highlight its ribbons, fade the rest and show a tooltip. Nivo's ribbon tooltip lists the value at both ends.
- Randomize the data. The arcs and ribbons of all three animate to their new sizes.
- Presets. Grouped by continent (
nodeLevels) adds a ring of continent arcs, which only Unovis can draw: ECharts and Nivo take a flat list of nodes. Radial labels (nodeLabelAlignment) is Nivo'slabelRotation. ECharts' chord series ignoreslabel.rotate, so its demo turns each label with alabelLayoutcallback and computes the arc angles from the data itself. Thick arcs (nodeWidth,padAngle) is a pair of options in all three.
Feature comparison
| Feature | Unovis1.8.0 | Recharts3.10.1 | Chart.js4.5.1 | ECharts6.1.0 | Nivo0.99.0 | AG Charts14.2.0 | Observable Plot0.6.17 | Vega-Lite6.5.0 | TanStack Charts1.1.0 |
|---|---|---|---|---|---|---|---|---|---|
| Chord diagram | |||||||||
| Sankey | |||||||||
| Tooltip | |||||||||
| Animated data updates | |||||||||
| Dark mode |
Every cell links to its source. See how we compare for the rules we followed.