Personnaliser les points de données dans les graphiques Treemap et Sunburst avec Java

Parmi les autres types de graphiques PowerPoint, il existe deux types « hiérarchiques » – Treemap et Sunburst (chart également connu sous le nom de Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph ou Multi Level Pie Chart). Ces graphiques affichent des données hiérarchiques organisées sous forme d’arbre — des feuilles jusqu’à la branche supérieure. 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 Java permet de formater les points de données des graphiques Sunburst et Treemap en Java.

Voici un graphique Sunburst, où les données de la colonne Series1 définissent les nœuds feuilles, tandis que les autres colonnes définissent les points de données hiérarchiques :

todo:image_alt_text

Commençons par ajouter un nouveau graphique Sunburst à la présentation :

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);

    // ...
} finally {
    if (pres != null) pres.dispose();
}

S’il faut formater les points de données du graphique, nous devons utiliser les éléments suivants :

IChartDataPointLevelsManager, IChartDataPointLevel classes et IChartDataPoint.getDataPointLevels method fournissent l’accès au format 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 de IChartDataPointLevel objets. En pratique, c’est un wrapper pour IChartCategoryLevelsManager avec les propriétés ajoutées spécifiques aux points de données. La classe IChartDataPointLevel possède deux méthodes : getFormat et getDataLabel qui fournissent 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 » :

IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);

todo:image_alt_text

Définir l’étiquette et la couleur d’un point de données

Définir l’étiquette du point « Branch 1 » pour afficher le nom de la série (« Series1 ») au lieu du nom de la catégorie. Puis définir la couleur du texte en jaune :

IDataLabel 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(Color.YELLOW);

todo:image_alt_text

Définir la couleur d’une branche de point de données

Changer la couleur de la branche « Steam 4 » :

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);

    IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();

    IChartDataPointLevel stem4branch = dataPoints.get_Item(9).getDataPointLevels().get_Item(1);

    stem4branch.getFormat().getFill().setFillType(FillType.Solid);
    stem4branch.getFormat().getFill().getSolidFillColor().setColor(Color.RED);

    pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

todo:image_alt_text

FAQ

Puis-je changer l’ordre (tri) des segments dans Sunburst/Treemap ?

Non. PowerPoint trie automatiquement les segments (généralement par valeurs décroissantes, 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 étiquettes ?

Les couleurs du graphique héritent du theme/palette de la présentation sauf si vous définissez explicitement les remplissages ou les polices. Pour obtenir 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 étiquettes ?

Oui. Lors de l’exportation de la présentation, les paramètres du graphique (remplissages, étiquettes) sont conservés dans les formats de sortie parce qu’Aspose.Slides rend le graphique avec le format appliqué.

Puis-je calculer les coordonnées réelles d’une étiquette/élément pour placer une superposition personnalisée au‑dessus du graphique ?

Oui. Après validation de la disposition du graphique, les valeurs réelles x et y sont disponibles pour les éléments (par exemple, un DataLabel), ce qui facilite le positionnement précis des superpositions.