This demo shows how we can use an adapter on pie chart's labels to automatically determine how it is displayed: inside or outside the slice.
Code
series.labels.template.adapters.add("text", function(text, target) {
if (target.dataItem) {
if (target.dataItem.get("valuePercentTotal") < 5) {
target.setAll({
textType: "regular",
centerX: am5.percent(50),
radius: 20
});
target.dataItem.get("tick").set("forceHidden", false);
}
else {
target.setAll({
textType: "circular",
centerX: am5.percent(100),
radius: -30
});
target.dataItem.get("tick").set("forceHidden", true);
}
}
return text;
});
series.labels.template.adapters.add("text", function(text, target) {
if (target.dataItem) {
if (target.dataItem.get("valuePercentTotal") < 5) {
target.setAll({
textType: "regular",
centerX: am5.percent(50),
radius: 20
});
target.dataItem.get("tick").set("forceHidden", false);
}
else {
target.setAll({
textType: "circular",
centerX: am5.percent(100),
radius: -30
});
target.dataItem.get("tick").set("forceHidden", true);
}
}
return text;
});
Example
Here's a simple example:
See the Pen Selectively displaying pie chart labels inside or outside slice by amCharts team (@amcharts) on CodePen.
Another example, which aligns outside labels into a column:
See the Pen Selectively displaying pie chart labels inside or outside slices 3 by amCharts team (@amcharts) on CodePen.