Personalizza i punti dati nei diagrammi Treemap e Sunburst su Android
Introduzione
Tra gli altri tipi di diagrammi PowerPoint, esistono due tipi “gerarchici” – Treemap e Sunburst (chart, noto anche come Sunburst Graph, Sunburst Diagram, Diagramma radiale, Grafico radiale o Grafico a torta multilevel). Questi diagrammi mostrano dati gerarchici organizzati come un albero – dalle foglie fino alla cima del ramo. Le foglie sono definite dai punti dati della serie, e ogni successivo livello di raggruppamento annidato è definito dalla categoria corrispondente. Aspose.Slides per Android via Java consente di formattare i punti dati di Sunburst Chart e Treemap in Java.
Ecco un diagramma Sunburst, in cui i dati nella colonna Series1 definiscono i nodi foglia, mentre le altre colonne definiscono punti dati gerarchici:
Iniziamo aggiungendo un nuovo diagramma Sunburst alla presentazione:
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();
}
Se è necessario formattare i punti dati del diagramma, dovremmo usare quanto segue:
IChartDataPointLevelsManager, IChartDataPointLevel classes and IChartDataPoint.getDataPointLevels method provide access to format data points of Treemap and Sunburst charts. IChartDataPointLevelsManager viene utilizzato per accedere a categorie a più livelli – rappresenta il contenitore di IChartDataPointLevel objects. In pratica è un wrapper for IChartCategoryLevelsManager with the properties added specific for data points. IChartDataPointLevel class has two methods: getFormat and getDataLabel which provide access to corresponding settings.
Mostra il valore di un punto dati
Mostra il valore del punto dati “Leaf 4”:
IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);
Imposta etichetta e colore di un punto dati
Imposta l’etichetta del punto dati “Branch 1” per mostrare il nome della serie (“Series1”) invece del nome della categoria. Poi imposta il colore del testo a giallo:
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);
Imposta colore del ramo di un punto dati
Modifica il colore del ramo “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();
}
FAQ
Posso cambiare l’ordine (ordinamento) dei segmenti in Sunburst/Treemap?
No. PowerPoint ordina i segmenti automaticamente (tipicamente per valori decrescenti, in senso orario). Aspose.Slides replica questo comportamento: non è possibile cambiare l’ordine direttamente; è necessario pre‑elaborare i dati.
In che modo il tema della presentazione influisce sui colori dei segmenti e delle etichette?
I colori del diagramma ereditano il tema/palette della presentazione a meno che non vengano impostati esplicitamente riempimenti/font. Per risultati coerenti, blocca i riempimenti solidi e la formattazione del testo ai livelli richiesti.
L’esportazione in PDF/PNG preserva i colori personalizzati dei rami e le impostazioni delle etichette?
Sì. Quando si esporta la presentazione, le impostazioni del diagramma (riempimenti, etichette) vengono preservate nei formati di output perché Aspose.Slides rende il diagramma con la formattazione applicata.
Posso calcolare le coordinate reali di un’etichetta/elemento per posizionare una sovrapposizione personalizzata sopra il diagramma?
Sì. Dopo che il layout del diagramma è stato validato, sono disponibili le coordinate x e y effettive per gli elementi (ad esempio, una DataLabel), il che facilita il posizionamento preciso delle sovrapposizioni.