Точки данных диаграмм 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:
Начнём с добавления новой диаграммы 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);
Установить метку и цвет точки данных
Установите метку данных «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"));
Установить цвет ветки точки данных
Изменить цвет ветки «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();
}
}
Вопросы и ответы
Могу ли я изменить порядок (сортировку) сегментов в диаграммах Sunburst/Treemap?
Нет. PowerPoint сортирует сегменты автоматически (обычно по убыванию значений, по часовой стрелке). Aspose.Slides повторяет это поведение: изменить порядок напрямую нельзя; его можно изменить предварительной обработкой данных.
Как тема презентации влияет на цвета сегментов и меток?
Цвета диаграмм наследуются от тематической палитры презентации, если вы явно не задаете заполнения/шрифты. Для получения согласованных результатов фиксируйте сплошные заливки и форматирование текста на нужных уровнях.
Сохранит ли экспорт в PDF/PNG пользовательские цвета веток и настройки меток?
Да. При экспорте презентации настройки диаграммы (заливки, метки) сохраняются в целевых форматах, так как Aspose.Slides рендерит их с применённым форматированием.
Могу ли я вычислить реальные координаты метки/элемента для размещения пользовательского наложения поверх диаграммы?
Да. После подтверждения компоновки диаграммы доступны реальные координаты X и Y для элементов (например, DataLabel), что помогает точно позиционировать наложения.