Точки данных диаграмм Treemap и Sunburst

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

Here is a Sunburst Chart, where data in Series1 column define the leaf nodes, while other columns define hierarchical datapoints: todo:image_alt_text

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

var pres = new aspose.slides.Presentation();
try {
    var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Sunburst, 100, 100, 450, 400);
    // ...
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

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

ChartDataPointLevelsManager, ChartDataPointLevel классы и ChartDataPoint.getDataPointLevels метод предоставляют доступ к форматированию точек данных диаграмм Treemap и Sunburst. ChartDataPointLevelsManager используется для доступа к многоуровневым категориям — он представляет контейнер объектов ChartDataPointLevel. По сути это оболочка для ChartCategoryLevelsManager с добавленными свойствами, специфичными для точек данных. Класс [ChartDataPointLevel] имеет два метода: getFormat и getDataLabel , которые предоставляют доступ к соответствующим настройкам.

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

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

var 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») вместо имени категории. Затем задайте цвет текста — желтый:

var branch1Label = dataPoints.get_Item(0).getDataPointLevels().get_Item(0).getLabel();
branch1Label.getDataLabelFormat().setShowCategoryName(false);
branch1Label.getDataLabelFormat().setShowSeriesName(true);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW"));

todo:image_alt_text

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

Изменить цвет ветки «Steam 4»:

var pres = new aspose.slides.Presentation();
try {
    var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Sunburst, 100, 100, 450, 400);
    var dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
    var stem4branch = dataPoints.get_Item(9).getDataPointLevels().get_Item(1);
    stem4branch.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
    stem4branch.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
    pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

todo:image_alt_text

Вопросы и ответы

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

Нет. PowerPoint сортирует сегменты автоматически (обычно по убыванию значений, по часовой стрелке). Aspose.Slides повторяет это поведение: изменить порядок напрямую нельзя; его можно изменить предварительной обработкой данных.

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

Цвета диаграмм наследуются от тематической палитры презентации, если вы явно не задаете заполнения/шрифты. Для получения согласованных результатов фиксируйте сплошные заливки и форматирование текста на нужных уровнях.

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

Да. При экспорте презентации настройки диаграммы (заливки, метки) сохраняются в целевых форматах, так как Aspose.Slides рендерит их с применённым форматированием.

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

Да. После подтверждения компоновки диаграммы доступны реальные координаты X и Y для элементов (например, DataLabel), что помогает точно позиционировать наложения.