A Donut Series has all the benefits of a Pie Series and allows displaying multiple datasets in a single chart.
Simple Donut Copy Link
To create a Donut Series, use the donut series type.
{
series: [
{
type: 'donut',
calloutLabelKey: 'asset',
angleKey: 'amount',
},
],
}
An optional innerRadiusRatio can be provided which should be a value between 0 and 1 and defines the radius of the inner circle as a ratio of the outer radius of the chart.
Inner Labels Copy Link
The innerLabels property can be used to put several lines of text in the space inside a Donut Series.
The colour of the centre area can be changed by using innerCircle.
{
series: [
{
// ...
innerLabels: [
{
text: 'Total Investment',
fontWeight: 'bold',
},
{
text: '$100,000',
spacing: 4,
fontSize: 44,
color: 'green',
},
],
innerCircle: {
fill: '#c9fdc9',
},
},
],
}
Multiple Donuts Copy Link
To render multiple Donut Series in a single chart without overlapping, set an outerRadiusRatio in conjunction with an innerRadiusRatio.
{
series: [
{
// outer series
// ...
outerRadiusRatio: 1, // the default
innerRadiusRatio: 0.9,
title: { text: 'Previous Year', showInLegend: true },
},
{
// inner series
// ...
outerRadiusRatio: 0.6,
innerRadiusRatio: 0.2,
title: { text: 'Current Year', showInLegend: true },
},
],
}
In the above configuration:
- The difference of
0.3between theinnerRadiusRatioof the outer series and theouterRadiusRatioof the inner series determines the size of the gap between the outer and inner series. - The difference between
outerRadiusRatioandinnerRadiusRatiofor each series determines the thickness of the ring for that series. - The
titleprovided for each series is displayed above the Donut Series if there is space. - Using
showInLegenddisplays the title within the legend item, allowing differentiation between the two series within the legend.
Shared Legend Copy Link
Providing a matching legendItemKey allows synchronising of legend items across multiple Donut Series. When a legend item is clicked, all items with a matching legendItemKey are toggled.
{
series: [
{
// ...
calloutLabelKey: 'asset',
legendItemKey: 'asset',
},
{
// ...
legendItemKey: 'asset',
showInLegend: false,
},
],
}
Using showInLegend: false for the second series, ensures that there are no duplicate legend items.