If we are using Pie charts, once in a while we end up with one that has simply too many slices. This tutorial will look at some basic ways to make it less awkward.
The problem
Having a lot of slices on a single chart poses an obvious issue: the labels displayed for each chart simply do not fit.
The solutions
There are a few things you could do. We'll look at them each one-by-one.
Reduce label padding
This will allow labels to be packed closer together, so more of them fit in the same column.
pieSeries.labels.template.paddingTop = 0; pieSeries.labels.template.paddingBottom = 0;
pieSeries.labels.template.paddingTop = 0; pieSeries.labels.template.paddingBottom = 0;
{ // ... "series": [{ // ... "labels": { "paddingTop": 0, "paddigBottom": 0 } }] }
Here's how our chart looks like now:
Reduce font size
Reducing font size also makes labels smaller and thus makes more of them fit into same space.
pieSeries.labels.template.fontSize = 10;
pieSeries.labels.template.fontSize = 10;
{ // ... "series": [{ // ... "labels": { "fontSize": 10 } }] }
Use SliceGrouper
SliceGrouper is a free plugin which would automatically group small slices into a single slice, which can be made to explode on click/tap.
let grouper = pieSeries.plugins.push(new am4plugins_sliceGrouper.SliceGrouper()); grouper.threshold = 5; grouper.groupName = "Other"; grouper.clickBehavior = "zoom";
var grouper = pieSeries.plugins.push(new am4plugins_sliceGrouper.SliceGrouper()); grouper.threshold = 5; grouper.groupName = "Other"; grouper.clickBehavior = "zoom";
{ // ... "series": [{ // ... "plugins": [{ "type": "SliceGrouper", "threshold": 5, "groupName": "Other", "clickBehavior": "break" }] }] }
MORE INFO For more information about SliceGrouper plugin, read here.
And here's a live example using SliceGrouper:
See the Pen amCharts 4: Dealing with PieChart with too many slices by amCharts team (@amcharts) on CodePen.