Skip to content

Radar Chart ​

x-h-chart-radar draws a radar chart from a single reactive configuration object. Each category gets its own axis arranged around a center, and every series is drawn as a closed shape across those axes. Multiple series are overlaid. Charts inherit the active theme colors and adapt to light and dark mode automatically.

Usage ​

Give the chart a container with an explicit height (charts fill their parent). Provide one or more series, each a list of numeric data points, and a matching labels array naming the axes. Use a radar chart to compare several quantitative dimensions at once, for example skill profiles or feature scores. To show a trend across an ordered sequence use a Line Chart, and to compare discrete categories use a Bar Chart.

API Reference ​

Component attribute(s) ​

x-h-chart-radar

Attributes ​

AttributeTypeRequiredDescription
data-font-sizexs
sm
base
lg
falseChanges the size of all chart text, such as labels, axis ticks, and the legend. Defaults to xs.

Configuration ​

KeyTypeDefaultDescription
series{ name?, color?, data: number[] }[][]One entry per shape. Multiple series are overlaid. For color values, see Colors.
labelsstring[][]Label for each axis around the chart.
legendbooleantrueShow the color/label key.
axesbooleantrueShow the numeric tick labels along the vertical.
gridlinesbooleantrueShow the spokes and the polygonal web rings.
tooltipbooleantrueShow a tooltip on hover and emit interaction events.
dataLabelsbooleanfalseDraw each point's value next to it.
tickCountnumber5Target number of web rings.
valueFormat(value) => stringlocale numberFormats values in tooltips and tick labels.
palettestring[]color-1 to color-9Chart colors cycled for series without an explicit color. See Colors for more information.
seriesLabelstringSeries {index}Template naming a series that has no name. {index} is substituted.
tableLabels{ category? }English defaultsColumn headers of the hidden data table read by screen readers.

Colors ​

A series color (and the palette entries) is one of the chart colors color-1 to color-12. They paint with the theme's --chart-color-1 to --chart-color-12 variables (see Theme Customization). By default, they map to blue, red, green, orange, purple, teal, pink, indigo, yellow, gray, white and black. The standard color names (red, orange, yellow, green, teal, blue, indigo, purple, pink, gray, white and black) are deprecated. They still work but they will be removed in the next major version.

Accessibility ​

The chart is exposed to assistive technologies as a figure with a visually-hidden data table of its values, so screen-reader users get the underlying numbers (the visual shapes, web, and legend are marked decorative). It defaults to the accessible name "Radar chart". Set an aria-label attribute on the element to give it a more meaningful name.

Events ​

When tooltip is enabled, hovering and clicking points emit bubbling CustomEvents on the chart element - chart-hover, chart-leave, and chart-click. See the events reference for the shared detail shape.

Data Slots ​

SlotElement
chartx-h-chart-radar
chart-svgThe chart drawing
chart-spokeA spoke of the grid
chart-ringA grid ring
chart-tickA scale label
chart-areaThe filled area of a series
chart-segmentThe outline of a series
chart-pointA data point
chart-labelA value label
chart-legendThe legend
chart-legend-swatchA legend color swatch
chart-tooltipThe hover tooltip
chart-tableThe data table for assistive technologies
chart-emptyThe message shown when there is no data

Examples ​

Basic ​

html
<div
  class="aspect-square h-full"
  style="max-height: 20rem"
  x-h-chart-radar="{
    labels: ['Speed', 'Reliability', 'Comfort', 'Safety', 'Efficiency'],
    series: [{ name: 'Model A', data: [70, 90, 60, 85, 75] }]
  }"
></div>

Multiple series ​

html
<div
  class="aspect-square h-full"
  style="max-height: 20rem"
  x-h-chart-radar="{
    labels: ['Speed', 'Reliability', 'Comfort', 'Safety', 'Efficiency'],
    series: [
      { name: 'Model A', data: [70, 90, 60, 85, 75] },
      { name: 'Model B', data: [85, 65, 80, 70, 90] }
    ]
  }"
></div>