Настройка точек данных в диаграммах Treemap и Sunburst на Android

Среди прочих типов диаграмм PowerPoint существуют два «иерархических» типа — Treemap и Sunburst (также известные как Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph или Multi Level Pie Chart). Эти диаграммы отображают иерархические данные, организованные в виде дерева — от листьев к вершине ветви. Листья определяются точками данных серии, а каждый последующий вложенный уровень группировки определяется соответствующей категорией. Aspose.Slides for Android via Java позволяет форматировать точки данных диаграмм Sunburst и Treemap на Java.

Ниже представлена диаграмма Sunburst, где данные в столбце Series1 определяют листовые узлы, а остальные столбцы определяют иерархические точки данных:

todo:image_alt_text

Начнём с добавления новой диаграммы Sunburst в презентацию:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);

    // ...
} finally {
    if (pres != null) pres.dispose();
}

Если необходимо отформатировать точки данных диаграммы, следует использовать следующее:

IChartDataPointLevelsManager, IChartDataPointLevel classes and IChartDataPoint.getDataPointLevels method provide access to format data points of Treemap and Sunburst charts. IChartDataPointLevelsManager is used for accessing multi-level categories - it represents the container of IChartDataPointLevel objects. Basically it is a wrapper for IChartCategoryLevelsManager with the properties added specific for data points. IChartDataPointLevel class has two methods: getFormat and getDataLabel which provide access to corresponding settings.

Показать значение точки данных

Показать значение точки данных “Leaf 4”:

IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);

todo:image_alt_text

Установить метку и цвет точки данных

Установите метку данных “Branch 1” так, чтобы отображалось имя серии (“Series1”) вместо имени категории. Затем задайте цвет текста желтым:

IDataLabel branch1Label = dataPoints.get_Item(0).getDataPointLevels().get_Item(0).getLabel();
branch1Label.getDataLabelFormat().setShowCategoryName(false);
branch1Label.getDataLabelFormat().setShowSeriesName(true);

branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.YELLOW);

todo:image_alt_text

Установить цвет ветви точки данных

Изменить цвет ветви “Steam 4”:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);

    IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();

    IChartDataPointLevel stem4branch = dataPoints.get_Item(9).getDataPointLevels().get_Item(1);

    stem4branch.getFormat().getFill().setFillType(FillType.Solid);
    stem4branch.getFormat().getFill().getSolidFillColor().setColor(Color.RED);

    pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

todo:image_alt_text

FAQ

Могу ли я изменить порядок (сортировку) сегментов в Sunburst/Treemap?

No. PowerPoint sorts segments automatically (typically by descending values, clockwise). Aspose.Slides mirrors this behavior: you can’t change the order directly; you achieve it by preprocessing the data.

Как тема презентации влияет на цвета сегментов и меток?

Chart colors inherit the presentation’s theme/palette unless you explicitly set fills/fonts. For consistent results, lock in solid fills and text formatting at the required levels.

Будут ли экспорт в PDF/PNG сохранять пользовательские цвета ветвей и настройки меток?

Yes. When exporting the presentation, chart settings (fills, labels) are preserved in the output formats because Aspose.Slides renders with the chart’s formatting applied.

Могу ли я вычислить реальные координаты метки/элемента для размещения пользовательского наложения поверх диаграммы?

Yes. After the chart layout is validated, actual x and actual y are available for elements (for example, a DataLabel), which helps with precise positioning of overlays.