Radar Chart component
Datatype: "radar"A radar / spider chart — one polygon per data series over shared radial axes, for comparing profiles across 3–8 dimensions at a glance.
Design JSON
{
"title": "Radar chart sample",
"description": "A multi-series capability comparison",
"dimensions": {
"width": 800,
"height": 460
},
"background": {
"color": "#ffffff"
},
"components": [
{
"id": "sample-radar",
"key": "radar",
"type": "radar",
"position": {
"x": 240,
"y": 40
},
"rotation": 0,
"size": {
"width": 320,
"height": 380
},
"dynamic": true,
"properties": {
"axes": [
"Speed",
"Power",
"Range",
"Accuracy",
"Defense",
"Cost"
],
"series": [
{
"name": "Model A",
"values": [
80,
65,
90,
70,
85,
60
]
},
{
"name": "Model B",
"values": [
60,
85,
70,
90,
65,
80
]
}
],
"max": 100,
"fillOpacity": 0.2,
"showLegend": true,
"legendPosition": "bottom",
"opacity": 1
}
}
]
}Like what you built? The full editor — canvas, templates and the render API — is free to start.
Open the editorRadar Chart examples
Real renders of the radar chart — each one is the same component with different property values, and the API payload below each preview reproduces it exactly.
Product comparison
Two products rated across six capabilities on a fixed 0–100 scale.
API overrides for this example
{
"radar.axes": [
"Speed",
"Power",
"Range",
"Accuracy",
"Defense",
"Cost"
],
"radar.series": [
{
"name": "Model A",
"values": [
80,
65,
90,
70,
85,
60
]
},
{
"name": "Model B",
"values": [
60,
85,
70,
90,
65,
80
]
}
],
"radar.max": 100
}Skill profile
A single player’s attributes as one filled spider, with values on the vertices.
API overrides for this example
{
"radar.axes": [
"Pace",
"Shooting",
"Passing",
"Dribbling",
"Defense",
"Physical"
],
"radar.series": [
{
"name": "Player",
"values": [
88,
74,
82,
91,
55,
79
]
}
],
"radar.max": 100,
"radar.showValues": true,
"radar.showLegend": false
}All radar chart styles
Every style rendered live — each is just a different set of property values on the same component, and each has its own page with a dedicated preview, use cases and API example.
Use cases
What developers typically build with the radar chart component.
- Product / feature comparison scorecards
- Team or player skill profiles for sports & games
- Candidate or vendor evaluations across criteria
- Performance-vs-benchmark snapshots for reviews
Use it dynamically via the API
Push fresh datasets per render with '<key>.series' (or just '<key>') as [{ name, values }]; '<key>.axes' updates the spokes too.
Full API request with the sample design's current values — the playground above sends only the properties you change
curl --location 'https://render.imejis.io/v1/{{YOUR_DESIGN_ID}}' \
--header 'dma-api-key: {{YOUR_API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"radar.axes": [
"Speed",
"Power",
"Range",
"Accuracy",
"Defense",
"Cost"
],
"radar.series": [
{
"name": "Model A",
"values": [
80,
65,
90,
70,
85,
60
]
},
{
"name": "Model B",
"values": [
60,
85,
70,
90,
65,
80
]
}
],
"radar.max": 100,
"radar.fillOpacity": 0.2,
"radar.showLegend": true,
"radar.legendPosition": "bottom",
"radar.opacity": 1
}'Only send the properties you want to change — everything else keeps its design value. See the API documentation for all languages.
Property reference
Every property the radar chart component accepts — in the editor, in design JSON, and as API overrides.
| Property | Type | Edits as | Default | Description |
|---|---|---|---|---|
| axes | string[] | text | [] | Axis labels (the spokes), clockwise from the top. |
| series | object[] | text | [] | One entry per dataset: [{ name, values, color }] — values align to axes. |
| max | number | 0 | 0 | Value mapped to the outer ring (0 = auto from the data). |
| rings | number | 4 | 4 | Number of concentric grid rings. |
| colors | color[] | text | [] | Series palette (cycled) when a series has no color. |
| fillOpacity | number | 0.2 | 0.2 | Fill opacity of each series polygon. |
| gridColor | color | #e2e8f0 | "#e2e8f0" | Grid rings & spokes color. |
| axisLabelColor | color | #475569 | "#475569" | Axis label & legend text color. |
| strokeWidth | number | 2 | 2 | Series outline width (px). |
| showDots | boolean | true | true | Draw a dot at each value vertex. |
| showValues | boolean | false | false | Print the value beside each vertex (best with one series). |
| valueFormat | 'number' | 'compact' | 'percent' | 'currency' | numbercompactpercentcurrency | "number" | How printed values are formatted (80 / 1.2K / 80% / $80). |
| currencySymbol | string | text | "$" | Symbol used with the 'currency' format. |
| showLegend | boolean | true | true | Show the series legend (named series only). |
| legendPosition | 'top' | 'right' | 'bottom' | toprightbottom | "bottom" | Where the legend is placed. |
| opacity | number | 1 | 1 | Overall component opacity from 0 (transparent) to 1 (opaque). |
| borderWidth | number | 0 | 0 | Border thickness in pixels around the component. |
| borderColor | color | transparent | "transparent" | Border color (any CSS color). |
| borderStyle | 'solid' | 'dashed' | 'dotted' | 'double' | 'none' | soliddasheddotteddoublenone | "solid" | Border line style. |
| borderRadius | number | 0 | 0 | Corner radius in pixels. |
| boxShadow | string | text | — | CSS box-shadow applied to the component, e.g. "0 4px 6px rgba(0,0,0,0.1)". |