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

Среди других типов диаграмм PowerPoint есть два “иерархических” типа - Treemap и Sunburst (также известные как график Sunburst, диаграмма Sunburst, радиальная диаграмма, радиальный график или многоуровневая круговая диаграмма). Эти диаграммы отображают иерархические данные, организованные в виде дерева - от листьев до верхушки ветки. Листья определяются данными точек серий, а каждый последующий уровень вложенной группировки определяется соответствующей категорией. Aspose.Slides для PHP через Java позволяет форматировать данные точек диаграммы Sunburst и Treemap.

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

todo:image_alt_text

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

  $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();
    }
  }

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

IChartDataPointLevelsManagerIChartDataPointLevel классы  и IChartDataPoint.getDataPointLevels метод  предоставляют доступ к форматированию данных точек диаграмм Treemap и Sunburst.  IChartDataPointLevelsManager используется для доступа к многоуровневым категориям - он представляет контейнер  IChartDataPointLevel объектов. По сути, это обертка для  IChartCategoryLevelsManager с добавленными свойствами, специфичными для точек данных.  Класс IChartDataPointLevel имеет два метода: getFormat и  getDataLabel которые предоставляют доступ к соответствующим настройкам.

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

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

  $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”) вместо названия категории. Затем установить цвет текста на желтый:

  $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);

todo:image_alt_text

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

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

  $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();
    }
  }

todo:image_alt_text