Puntos de Datos de Gráfico Treemap y Sunburst

Entre otros tipos de gráficos de PowerPoint, hay dos tipos “jerárquicos”: Treemap y Sunburst (también conocido como Gráfico Sunburst, Diagrama Sunburst, Gráfico Radial o Gráfico Circular Multinivel). Estos gráficos muestran datos jerárquicos organizados en forma de árbol, desde las hojas hasta la parte superior de la rama. Las hojas están definidas por los puntos de datos de la serie, y cada nivel de agrupación anidado subsiguiente está definido por la categoría correspondiente. Aspose.Slides para PHP a través de Java permite formatear los puntos de datos del Gráfico Sunburst y Treemap.

Aquí hay un Gráfico Sunburst, donde los datos en la columna Series1 definen los nodos hoja, mientras que otras columnas definen los puntos de datos jerárquicos:

todo:image_alt_text

Comencemos agregando un nuevo gráfico Sunburst a la presentación:

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

Si hay necesidad de formatear los puntos de datos del gráfico, debemos usar lo siguiente:

IChartDataPointLevelsManagerIChartDataPointLevel clases  y IChartDataPoint.getDataPointLevels método  proporcionan acceso para formatear los puntos de datos de los gráficos Treemap y Sunburst.  IChartDataPointLevelsManager se utiliza para acceder a categorías multinivel; representa el contenedor de  IChartDataPointLevel objetos. Básicamente es un envoltorio para  IChartCategoryLevelsManager con las propiedades añadidas específicas para los puntos de datos.  La clase IChartDataPointLevel tiene dos métodos: getFormatgetDataLabel que proporcionan acceso a configuraciones correspondientes.

Mostrar Valor del Punto de Datos

Mostrar el valor del punto de datos “Hoja 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

Establecer Etiqueta y Color del Punto de Datos

Establecer la etiqueta de datos “Rama 1” para mostrar el nombre de la serie (“Series1”) en lugar del nombre de la categoría. Luego establecer el color del texto en amarillo:

  $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

Establecer Color de Rama del Punto de Datos

Cambiar el color de la rama “Tallo 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