Radar
Categories are spread around the circle (angleField), values go along the radius (radiusField). radar-line draws an outline, radar-area an outline with a fill. The grid is polygonal (a "spider web"). On hover, the vertex marker smoothly grows and the other series are dimmed — the same animation as in polar charts.
ts
import { getData } from './data';
import type { ChartOptions } from 'grafit-charts';
export function createOptions(): ChartOptions {
return {
data: getData(),
title: { text: 'Product assessment' },
series: [
{ type: 'radar-area', angleField: 'skill', radiusField: 'target', name: 'Target' },
{
type: 'radar-line',
angleField: 'skill',
radiusField: 'current',
name: 'Current',
tooltip: {
renderer: ({ label, value, seriesName, color }) => ({
heading: label,
rows: [{ label: seriesName, value: `${value} / 10`, color }],
}),
},
},
],
};
}ts
export function getData() {
return [
{ skill: 'Speed', current: 7, target: 9 },
{ skill: 'Quality', current: 8, target: 9 },
{ skill: 'Reliability', current: 6, target: 8 },
{ skill: 'Support', current: 5, target: 7 },
{ skill: 'Price', current: 8, target: 8 },
{ skill: 'Documentation', current: 4, target: 8 },
];
}Radar-area
Filled profiles with transparency — handy for comparing two outlines:
ts
import { getData } from './data';
import type { ChartOptions } from 'grafit-charts';
export function createOptions(): ChartOptions {
return {
data: getData(),
title: { text: 'Radar-area: profile comparison' },
series: [
{ type: 'radar-area', angleField: 'metric', radiusField: 'team', name: 'Us', fillOpacity: 0.3 },
{ type: 'radar-area', angleField: 'metric', radiusField: 'market', name: 'Market', fillOpacity: 0.3 },
],
};
}ts
export function getData() {
return [
{ metric: 'Speed', team: 8, market: 6 },
{ metric: 'Quality', team: 7, market: 8 },
{ metric: 'Price', team: 5, market: 7 },
{ metric: 'Support', team: 9, market: 5 },
{ metric: 'Features', team: 6, market: 8 },
{ metric: 'UX', team: 8, market: 6 },
];
}Options
Options common to all series (name, showInLegend, tooltip.renderer, …) are covered in Common series options.
| Option | Type | Default | Description |
|---|---|---|---|
angleField | string | — | data keys |
radiusField | string | — | data keys |
name | string | radiusField | series name |
stroke | ColorValue | palette | outline |
strokeWidth | Pixels | 2 | outline |
fillOpacity (radar-area) | Fraction | 0.25 | fill opacity |
tooltip.renderer | ({ datum, label, value, seriesName, color }) => … | — | custom tooltip content |
marker.enabled | boolean | true | vertex markers |
marker.shape | MarkerShape | circle | shape |
marker.size | Pixels | 6 | size |