Datenpunkte in Treemap- und Sunburst-Diagrammen mit PHP anpassen

Unter den verschiedenen PowerPoint‑Diagrammtypen gibt es zwei „hierarchische“ Typen – Treemap und Sunburst‑Diagramm (auch bekannt als Sunburst‑Graph, Sunburst‑Diagramm, Radial‑Chart, Radial‑Graph oder Mehrstufiges‑Kreisdiagramm). Diese Diagramme zeigen hierarchische Daten an, die als Baum strukturiert sind – von den Blättern bis hin zur Spitze des Astes. Die Blätter werden durch die Datenpunkte der Reihe definiert, und jede nachfolgende verschachtelte Gruppierungsebene wird durch die entsprechende Kategorie definiert. Aspose.Slides für PHP via Java ermöglicht das Formatieren von Datenpunkten des Sunburst‑Diagramms und der Treemap.

Hier ist ein Sunburst‑Diagramm, bei dem die Daten in der Spalte Series1 die Blattknoten definieren, während die anderen Spalten hierarchische Datenpunkte definieren:

todo:image_alt_text

Beginnen wir damit, ein neues Sunburst‑Diagramm zur Präsentation hinzuzufügen:

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

Falls es nötig ist, Datenpunkte des Diagramms zu formatieren, sollten wir Folgendes verwenden:

IChartDataPointLevelsManager, IChartDataPointLevel‑Klassen und IChartDataPoint.getDataPointLevels‑Methode bieten Zugriff zum Formatieren von Datenpunkten der Treemap‑ und Sunburst‑Diagramme. IChartDataPointLevelsManager wird zum Zugriff auf mehrstufige Kategorien verwendet – er stellt den Container für IChartDataPointLevel‑Objekte dar. Im Grunde ist er ein Wrapper für IChartCategoryLevelsManager mit den für Datenpunkte spezifisch hinzugefügten Eigenschaften. IChartDataPointLevel‑Klasse besitzt zwei Methoden: getFormat und getDataLabel , die Zugriff auf die entsprechenden Einstellungen ermöglichen.

Wert eines Datenpunkts anzeigen

Wert des Datenpunkts „Leaf 4“ anzeigen:

  $dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
  $dataPoints->get_Item(3)->getDataPointLevels()->get_Item(0)->getLabel()->getDataLabelFormat()->setShowValue(true);

todo:image_alt_text

Datenpunkt‑Beschriftung und -Farbe festlegen

Beschriftung des Datenpunkts „Branch 1“ so einstellen, dass der Serienname („Series1“) anstelle des Kategorienamens angezeigt wird. Anschließend die Textfarbe auf Gelb setzen:

  $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

Farbe eines Datenpunkt‑Zweiges festlegen

Farbe des Zweiges „Steam 4“ ändern:

  $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

FAQ

Kann ich die Reihenfolge (Sortierung) der Segmente in Sunburst/Treemap ändern?

Nein. PowerPoint sortiert Segmente automatisch (in der Regel absteigend, im Uhrzeigersinn). Aspose.Slides spiegelt dieses Verhalten wider: Die Reihenfolge kann nicht direkt geändert werden; sie wird durch Vorverarbeitung der Daten erreicht.

Wie wirkt sich das Präsentationsthema auf die Farben von Segmenten und Beschriftungen aus?

Diagrammfarben erben das Theme/Palette der Präsentation, sofern nicht explizit Füllungen/Schriften gesetzt werden. Für konsistente Ergebnisse sollten feste Füllungen und Textformatierungen auf den erforderlichen Ebenen festgelegt werden.

Bleiben benutzerdefinierte Zweig‑Farben und Beschriftungseinstellungen beim Export in PDF/PNG erhalten?

Ja. Beim Export der Präsentation bleiben Diagrammeinstellungen (Füllungen, Beschriftungen) in den Ausgabeformaten erhalten, da Aspose.Slides das Diagramm mit den angewandten Formatierungen rendert.

Kann ich die tatsächlichen Koordinaten einer Beschriftung/eines Elements berechnen, um benutzerdefinierte Overlays über dem Diagramm zu platzieren?

Ja. Nachdem das Diagrammlayout validiert wurde, stehen die tatsächlichen x- und y-Werte für Elemente (z. B. ein DataLabel) zur Verfügung, was eine präzise Platzierung von Overlays ermöglicht.