This demo shows how we can include all nodes from all levels of a Sunburst chart into its legend.
Code
let legend = container.children.push(am5.Legend.new(root, {}));
function addLegendItems(items) {
legend.data.pushAll(items);
am5.array.each(items, function(item) {
if (item.get("children")) {
addLegendItems(item.get("children"));
}
});
}
addLegendItems(series.dataItems[0].get("children"));
var legend = container.children.push(am5.Legend.new(root, {}));
function addLegendItems(items) {
legend.data.pushAll(items);
am5.array.each(items, function(item) {
if (item.get("children")) {
addLegendItems(item.get("children"));
}
});
}
addLegendItems(series.dataItems[0].get("children"));
The above code iterates through the whole hierarchy and pushes all data items from all nodes into legend's data.
Demo
See the Pen Sunburst Chart with a legend including all nodes by amCharts team (@amcharts) on CodePen.