Personnaliser les points de données dans les graphiques Treemap et Sunburst avec PHP
Parmi les autres types de graphiques PowerPoint, il existe deux types « hiérarchiques » – Treemap et Sunburst (également appelés Graphique Sunburst, Diagramme Sunburst, Graphique radial, Graphique radiale ou Diagramme circulaire à plusieurs niveaux). Ces graphiques affichent des données hiérarchiques organisées sous forme d’arbre – des feuilles jusqu’au sommet de la branche. Les feuilles sont définies par les points de données de la série, et chaque niveau de regroupement imbriqué suivant est défini par la catégorie correspondante. Aspose.Slides for PHP via Java permet de formater les points de données du graphique Sunburst et du Treemap.
Voici un graphique Sunburst, où les données de la colonne Series1 définissent les nœuds feuille, tandis que les autres colonnes définissent les points de données hiérarchiques :
Commençons par ajouter un nouveau graphique Sunburst à la présentation :
$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();
}
}
Voir aussi
S’il est nécessaire de formater les points de données du graphique, nous devons utiliser ce qui suit :
IChartDataPointLevelsManager, IChartDataPointLevel classes et la méthode IChartDataPoint.getDataPointLevels permettent d’accéder au formatage des points de données des graphiques Treemap et Sunburst. IChartDataPointLevelsManager est utilisé pour accéder aux catégories à plusieurs niveaux – il représente le conteneur des objets IChartDataPointLevel. En gros c’est un wrapper pour IChartCategoryLevelsManager avec des propriétés ajoutées spécifiques aux points de données. La classe IChartDataPointLevel possède deux méthodes : getFormat et getDataLabel qui offrent l’accès aux paramètres correspondants.
Afficher la valeur d’un point de données
Afficher la valeur du point de données « Leaf 4 » :
$dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
$dataPoints->get_Item(3)->getDataPointLevels()->get_Item(0)->getLabel()->getDataLabelFormat()->setShowValue(true);
Définir le libellé et la couleur d’un point de données
Définissez le libellé du point de données « Branch 1 » pour afficher le nom de la série (« Series1 ») au lieu du nom de catégorie. Puis définissez la couleur du texte en jaune :
$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);
Définir la couleur d’une branche de point de données
Modifier la couleur de la branche « 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();
}
}
FAQ
Puis-je modifier l’ordre (tri) des segments dans Sunburst/Treemap ?
Non. PowerPoint trie les segments automatiquement (généralement par valeur décroissante, dans le sens des aiguilles d’une montre). Aspose.Slides reproduit ce comportement : vous ne pouvez pas modifier l’ordre directement ; vous devez le faire en prétraitant les données.
Comment le thème de la présentation affecte-t-il les couleurs des segments et des libellés ?
Les couleurs du graphique héritent du thème/palette de la présentation sauf si vous définissez explicitement les remplissages/polices. Pour des résultats cohérents, verrouillez les remplissages solides et le formatage du texte aux niveaux requis.
L’exportation en PDF/PNG conservera-t-elle les couleurs personnalisées des branches et les paramètres des libellés ?
Oui. Lors de l’exportation de la présentation, les paramètres du graphique (remplissages, libellés) sont conservés dans les formats de sortie car Aspose.Slides rend le graphique avec le formatage appliqué.
Puis-je calculer les coordonnées réelles d’un libellé/élément pour un placement personnalisé de superposition au-dessus du graphique ?
Oui. Après la validation de la mise en page du graphique, les coordonnées réelles x et y sont disponibles pour les éléments (par exemple, un DataLabel), ce qui facilite le positionnement précis des superpositions.