Anpassen von Datenpunkten in Treemap- und Sunburst-Diagrammen mit PHP
Unter den verschiedenen PowerPoint‑Diagrammtypen gibt es zwei „hierarchische“ Typen – Treemap und Sunburst‑Diagramm (auch bekannt als Sunburst‑Grafik, Sunburst‑Diagramm, Radial‑Diagramm, Radial‑Grafik oder Mehrstufen‑Kreisdiagramm). Diese Diagramme zeigen hierarchische Daten, die als Baum organisiert sind – von den Blättern bis zur Spitze des Astes. Blätter werden durch die Datenpunkte der Serie definiert, und jede nachfolgende verschachtelte Gruppierungsebene wird durch die entsprechende Kategorie bestimmt. Aspose.Slides for PHP via Java ermöglicht das Formatieren von Datenpunkten des Sunburst‑Diagramms und der Treemap.
Hier ein Sunburst‑Diagramm, bei dem die Daten in der Spalte Series1 die Blattknoten definieren, während die anderen Spalten hierarchische Datenpunkte definieren:
Lassen Sie uns ein neues Sunburst‑Diagramm zur Präsentation hinzufü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:
ChartDataPointLevelsManager, ChartDataPointLevel Klassen und ChartDataPoint::getDataPointLevels Methode bieten Zugriff auf die Formatierung von Datenpunkten der Treemap‑ und Sunburst‑Diagramme. ChartDataPointLevelsManager wird zum Zugriff auf mehrstufige Kategorien verwendet – es stellt den Container für ChartDataPointLevel Objekte dar. Im Grunde ist es ein Wrapper für ChartCategoryLevelsManager mit den für Datenpunkte hinzugefügten spezifischen Eigenschaften. Die Klasse ChartDataPointLevel hat 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);
Datenpunkt‑Beschriftung und -Farbe festlegen
Beschriftung des Datenpunkts „Branch 1“ so einstellen, dass der Serienname („Series1“) anstelle des Kategorienamens angezeigt wird. Anschließend 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);
Farbe eines Datenpunktzweigs festlegen
Farbe des Zweigs „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();
}
}
FAQ
Kann ich die Reihenfolge (Sortierung) der Segmente in Sunburst/Treemap ändern?
Nein. PowerPoint sortiert Segmente automatisch (typischerweise absteigend nach Wert, im Uhrzeigersinn). Aspose.Slides spiegelt dieses Verhalten wider: Die Reihenfolge kann nicht direkt geändert werden; sie wird über eine Vorverarbeitung der Daten erreicht.
Wie wirkt sich das Präsentationsthema auf die Farben von Segmenten und Beschriftungen aus?
Diagrammfarben übernehmen das Thema/Palette der Präsentation, sofern keine Füllungen/Schriftarten explizit gesetzt werden. Für konsistente Ergebnisse sollten Sie solide Füllungen und Textformatierungen auf den gewünschten Ebenen festlegen.
Behält der Export nach PDF/PNG benutzerdefinierte Zweigfarben und Beschriftungseinstellungen bei?
Ja. Beim Exportieren der Präsentation werden Diagrammeinstellungen (Füllungen, Beschriftungen) in den Ausgabedateien beibehalten, da Aspose.Slides das Diagramm mit angewandter Formatierung rendert.
Kann ich die tatsächlichen Koordinaten einer Beschriftung/eines Elements für eine benutzerdefinierte Überlagerung über dem Diagramm berechnen?
Ja. Nach der Validierung des Diagrammlayouts stehen die tatsächlichen x- und y-Werte für Elemente (z. B. eine DataLabel) zur Verfügung, was eine präzise Positionierung von Overlays ermöglicht.