Настройка точек данных в диаграммах Treemap и Sunburst с использованием PHP
Среди прочих типов диаграмм PowerPoint существуют два «иерархических» типа — Treemap и Sunburst (также известные как Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph или Multi Level Pie Chart). Эти диаграммы отображают иерархические данные, организованные в виде дерева — от листьев к вершине ветви. Листья определяются точками данных серии, а каждый последующий уровень вложенной группы определяется соответствующей категорией. Aspose.Slides for PHP via Java позволяет форматировать точки данных диаграмм Sunburst и Treemap.
Here is a Sunburst Chart, where data in Series1 column define the leaf nodes, while other columns define hierarchical datapoints:
Let’s start with adding a new Sunburst chart to the presentation:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 100, 100, 450, 400);
# ...
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Смотрите также
If there is a need to format data points of the chart, we should use the following:
IChartDataPointLevelsManager, IChartDataPointLevel классы и IChartDataPoint.getDataPointLevels метод обеспечивают доступ к форматированию точек данных диаграмм Treemap и Sunburst. IChartDataPointLevelsManager используется для доступа к многоуровневым категориям — он представляет контейнер IChartCategoryLevelsManager с свойствами, добавленными специально для точек данных. Класс IChartDataPointLevel имеет два метода: getFormat и getDataLabel которые обеспечивают доступ к соответствующим настройкам.
Показать значение точки данных
Show value of “Leaf 4” data point:
$dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
$dataPoints->get_Item(3)->getDataPointLevels()->get_Item(0)->getLabel()->getDataLabelFormat()->setShowValue(true);
Установить метку и цвет точки данных
Set “Branch 1” data label to show series name (“Series1”) instead of category name. Then set text color to yellow:
$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(java("java.awt.Color")->YELLOW);
Установить цвет ветви точки данных
Change color of “Steam 4” branch:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 100, 100, 450, 400);
$dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
$stem4branch = $dataPoints->get_Item(9)->getDataPointLevels()->get_Item(1);
$stem4branch->getFormat()->getFill()->setFillType(FillType::Solid);
$stem4branch->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
$pres->save("pres.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Часто задаваемые вопросы
Могу ли я изменить порядок (сортировку) сегментов в Sunburst/Treemap?
Нет. PowerPoint сортирует сегменты автоматически (обычно по убывающим значениям, по часовой стрелке). Aspose.Slides отражает это поведение: изменить порядок напрямую нельзя; его можно добиться, предварительно обработав данные.
Как тема презентации влияет на цвета сегментов и меток?
Цвета диаграмм наследуют тема/палитра презентации, если вы явно не задаёте заливки/шрифты. Для согласованных результатов фиксируйте сплошные заливки и форматирование текста на требуемых уровнях.
Сохранит ли экспорт в PDF/PNG пользовательские цвета ветвей и настройки меток?
Да. При экспортировании презентации настройки диаграммы (заливки, метки) сохраняются в выходных форматах, поскольку Aspose.Slides рендерит их с применённым форматированием.
Могу ли я вычислить фактические координаты метки/элемента для пользовательского наложения поверх диаграммы?
Да. После того как макет диаграммы проверен, доступны фактические x и y для элементов (например, DataLabel), что помогает точно позиционировать накладки.