Personalizar puntos de datos en gráficos Treemap y Sunburst en Android
Entre otros tipos de gráficos de PowerPoint, existen dos tipos “jerárquicos”: el gráfico Treemap y el gráfico Sunburst (también conocido como Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph o Multi Level Pie Chart). Estos gráficos muestran datos jerárquicos organizados como un árbol, desde las hojas hasta la parte superior de la rama. Las hojas se definen mediante los puntos de datos de la serie, y cada nivel de agrupación anidado posterior se define por la categoría correspondiente. Aspose.Slides for Android mediante Java permite formatear los puntos de datos del gráfico Sunburst y del Treemap en Java.
Este es un gráfico Sunburst, donde los datos en la columna Series1 definen los nodos hoja, mientras que las demás columnas definen puntos de datos jerárquicos:
Comencemos añadiendo un nuevo gráfico Sunburst a la presentación:
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();
}
Ver también
Si es necesario formatear los puntos de datos del gráfico, debemos usar lo siguiente:
IChartDataPointLevelsManager,
IChartDataPointLevel clases
y IChartDataPoint.getDataPointLevels método
proporcionan acceso para formatear los puntos de datos de los gráficos Treemap y Sunburst.
IChartDataPointLevelsManager
se utiliza para acceder a categorías de varios niveles; representa el contenedor de
IChartDataPointLevel objetos.
Básicamente es un contenedor para
IChartCategoryLevelsManager con
las propiedades añadidas específicas para los puntos de datos.
La clase IChartDataPointLevel tiene
dos métodos: getFormat y
getDataLabel que
proporcionan acceso a la configuración correspondiente.
Mostrar el valor de un punto de datos
Mostrar el valor del punto de datos “Leaf 4”:
IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);
Establecer la etiqueta y el color de un punto de datos
Establecer la etiqueta del punto de datos “Branch 1” para que muestre el nombre de la serie (“Series1”) en lugar del nombre de la categoría. Luego establecer el color del texto a amarillo:
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);
Establecer el color de la rama de un punto de datos
Cambiar el color de la rama “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();
}
Preguntas frecuentes
¿Puedo cambiar el orden (clasificación) de los segmentos en Sunburst/Treemap?
No. PowerPoint clasifica los segmentos automáticamente (normalmente por valores descendentes, en sentido horario). Aspose.Slides reproduce este comportamiento: no es posible cambiar el orden directamente; se logra mediante el preprocesamiento de los datos.
¿Cómo afecta el tema de la presentación a los colores de los segmentos y etiquetas?
Los colores del gráfico heredan el tema/paleta de la presentación a menos que se establezcan explícitamente rellenos/fuentes. Para obtener resultados consistentes, fije rellenos sólidos y el formato de texto en los niveles requeridos.
¿La exportación a PDF/PNG preserva los colores personalizados de las ramas y la configuración de las etiquetas?
Sí. Al exportar la presentación, la configuración del gráfico (rellenos, etiquetas) se conserva en los formatos de salida porque Aspose.Slides renderiza con el formato del gráfico aplicado.
¿Puedo calcular las coordenadas reales de una etiqueta/elemento para colocar una superposición personalizada sobre el gráfico?
Sí. Después de validar el diseño del gráfico, están disponibles los valores reales de x e y para los elementos (por ejemplo, un DataLabel), lo que ayuda a posicionar con precisión superposiciones.