Radar Chart
A radar chart is a way of showing multiple data points and the variation between them.
They are often useful for comparing the points of two or more different data sets.
config setup
const config = {
type: 'radar',
data: data,
options: {
elements: {
line: {
borderWidth: 3
}
}
},
};
const data = {
labels: [
'Eating',
'Drinking',
'Sleeping',
'Designing',
'Coding',
'Cycling',
'Running'
],
datasets: [{
label: 'My First Dataset',
data: [65, 59, 90, 81, 56, 55, 40],
fill: true,
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgb(255, 99, 132)',
pointBackgroundColor: 'rgb(255, 99, 132)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgb(255, 99, 132)'
}, {
label: 'My Second Dataset',
data: [28, 48, 40, 19, 96, 27, 100],
fill: true,
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgb(54, 162, 235)',
pointBackgroundColor: 'rgb(54, 162, 235)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgb(54, 162, 235)'
}]
};
Dataset Properties
Namespaces:
data.datasets[index]
- options for this dataset onlyoptions.datasets.line
- options for all line datasetsoptions.elements.line
- options for all line elementsoptions.elements.point
- options for all point elementsoptions
- options for the whole chart
The radar chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a line is generally set this way.
Name | Type | Scriptable | Indexable | Default |
---|---|---|---|---|
backgroundColor | Color | Yes | - | ‘rgba(0, 0, 0, 0.1)’ |
borderCapStyle | string | Yes | - | ‘butt’ |
borderColor | Color | Yes | - | ‘rgba(0, 0, 0, 0.1)’ |
borderDash | number[] | Yes | - | [] |
borderDashOffset | number | Yes | - | 0.0 |
borderJoinStyle | string | Yes | - | ‘miter’ |
borderWidth | number | Yes | - | 3 |
hoverBackgroundColor | Color | Yes | - | undefined |
hoverBorderCapStyle | string | Yes | - | undefined |
hoverBorderColor | Color | Yes | - | undefined |
hoverBorderDash | number[] | Yes | - | undefined |
hoverBorderDashOffset | number | Yes | - | undefined |
hoverBorderJoinStyle | string | Yes | - | undefined |
hoverBorderWidth | number | Yes | - | undefined |
clip | number |object | - | - | undefined |
data | number[] | - | - | required |
fill | boolean |string | Yes | - | false |
label | string | - | - | ‘’ |
order | number | - | - | 0 |
tension | number | - | - | 0 |
pointBackgroundColor | Color | Yes | Yes | ‘rgba(0, 0, 0, 0.1)’ |
pointBorderColor | Color | Yes | Yes | ‘rgba(0, 0, 0, 0.1)’ |
pointBorderWidth | number | Yes | Yes | 1 |
pointHitRadius | number | Yes | Yes | 1 |
pointHoverBackgroundColor | Color | Yes | Yes | undefined |
pointHoverBorderColor | Color | Yes | Yes | undefined |
pointHoverBorderWidth | number | Yes | Yes | 1 |
pointHoverRadius | number | Yes | Yes | 4 |
pointRadius | number | Yes | Yes | 3 |
pointRotation | number | Yes | Yes | 0 |
pointStyle | string |Image | Yes | Yes | ‘circle’ |
spanGaps | boolean | - | - | undefined |
All these values, if undefined
, fallback to the scopes described in option resolution
General
Name | Description |
---|---|
clip | How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0} |
label | The label for the dataset which appears in the legend and tooltips. |
order | The drawing order of dataset. |
Point Styling
The style of each point can be controlled with the following properties:
Name | Description |
---|---|
pointBackgroundColor | The fill color for points. |
pointBorderColor | The border color for points. |
pointBorderWidth | The width of the point border in pixels. |
pointHitRadius | The pixel size of the non-displayed point that reacts to mouse events. |
pointRadius | The radius of the point shape. If set to 0, the point is not rendered. |
pointRotation | The rotation of the point in degrees. |
pointStyle | Style of the point. more… |
All these values, if undefined
, fallback first to the dataset options then to the associated elements.point.*
options.
Line Styling
The style of the line can be controlled with the following properties:
Name | Description |
---|---|
backgroundColor | The line fill color. |
borderCapStyle | Cap style of the line. See MDN (opens new window). |
borderColor | The line color. |
borderDash | Length and spacing of dashes. See MDN (opens new window). |
borderDashOffset | Offset for line dashes. See MDN (opens new window). |
borderJoinStyle | Line joint style. See MDN (opens new window). |
borderWidth | The line width (in pixels). |
fill | How to fill the area under the line. See area charts. |
tension | Bezier curve tension of the line. Set to 0 to draw straight lines. |
spanGaps | If true, lines will be drawn between points with no or null data. If false, points with null data will create a break in the line. |
If the value is undefined
, spanGaps
fallback to the associated chart configuration options. The rest of the values fallback to the associated elements.line.*
options.
Interactions
The interaction with each point can be controlled with the following properties:
Name | Description |
---|---|
pointHoverBackgroundColor | Point background color when hovered. |
pointHoverBorderColor | Point border color when hovered. |
pointHoverBorderWidth | Border width of point when hovered. |
pointHoverRadius | The radius of the point when hovered. |
Scale Options
The radar chart supports only a single scale. The options for this scale are defined in the scale
property. The options for this scale are defined in the scale
property, which can be referenced from the Linear Radial Axis page.
options = {
scales: {
r: {
angleLines: {
display: false
},
suggestedMin: 50,
suggestedMax: 100
}
}
};
Default Options
It is common to want to apply a configuration setting to all created radar charts. The global radar chart settings are stored in Chart.overrides.radar
. Changing the global options only affects charts created after the change. Existing charts are not changed.
Data Structure
The data
property of a dataset for a radar chart is specified as an array of numbers. Each point in the data array corresponds to the label at the same index.
data: [20, 10]
For a radar chart, to provide context of what each point means, we include an array of strings that show around each point in the chart.
data: {
labels: ['Running', 'Swimming', 'Eating', 'Cycling'],
datasets: [{
data: [20, 10, 4, 2]
}]
}
Internal data format
{x, y}