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 | ‘round’ |‘bevel’ |‘miter’ | 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 | ‘round’ |‘bevel’ |‘miter’ | 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 | pointStyle | 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. Also affects order for tooltip and legend. more |
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
, 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 scales.r
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}