Puntos de datos del gráfico Treemap y Sunburst

Entre los demás tipos de gráficos de PowerPoint, existen dos tipos “jerárquicos”: el gráfico Treemap y el gráfico Sunburst (también conocido como Gráfico Sunburst, Diagrama Sunburst, Gráfico radial, Gráfico radial o Gráfico circular de varios niveles). 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 .NET permite dar formato a los puntos de datos del gráfico Sunburst y Treemap en C#.

Aquí hay un gráfico Sunburst, donde los datos en la columna Series1 definen los nodos hoja, mientras que otras columnas definen los puntos de datos jerárquicos:

todo:image_alt_text

Comencemos añadiendo un nuevo gráfico Sunburst a la presentación:

using (Presentation pres = new Presentation())
{
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Sunburst, 100, 100, 450, 400);
    // ...
}

Si es necesario dar formato a los puntos de datos del gráfico, debemos usar lo siguiente:

IChartDataPointLevelsManager, IChartDataPointLevel clases y la propiedad IChartDataPoint.DataPointLevels proporcionan acceso para dar formato a los puntos de datos de los gráficos Treemap y Sunburst. IChartDataPointLevelsManager se utiliza para acceder a categorías multinivel; representa el contenedor de objetos IChartDataPointLevel. Básicamente es un contenedor para IChartCategoryLevelsManager con las propiedades añadidas específicas para los puntos de datos. La clase IChartDataPointLevel tiene dos propiedades: Format y DataLabel que proporcionan acceso a la configuración correspondiente.

Mostrar valor del punto de datos

Mostrar el valor del punto de datos “Leaf 4”:

IChartDataPointCollection dataPoints = chart.ChartData.Series[0].DataPoints;
dataPoints[3].DataPointLevels[0].Label.DataLabelFormat.ShowValue = true;

todo:image_alt_text

Establecer etiqueta y color del punto de datos

Establezca 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 establezca el color del texto a amarillo:

IDataLabel branch1Label = dataPoints[0].DataPointLevels[2].Label;
branch1Label.DataLabelFormat.ShowCategoryName = false;
branch1Label.DataLabelFormat.ShowSeriesName = true;

branch1Label.DataLabelFormat.TextFormat.PortionFormat.FillFormat.FillType = FillType.Solid;
branch1Label.DataLabelFormat.TextFormat.PortionFormat.FillFormat.SolidFillColor.Color = Color.Yellow;

todo:image_alt_text

Establecer color de rama del punto de datos

Cambie el color de la rama “Stem 4”:

using (Presentation pres = new Presentation())
{
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Sunburst, 100, 100, 450, 400);
    
    IChartDataPointCollection dataPoints = chart.ChartData.Series[0].DataPoints;

    IChartDataPointLevel stem4branch = dataPoints[9].DataPointLevels[1];
    
    stem4branch.Format.Fill.FillType = FillType.Solid;
    stem4branch.Format.Fill.SolidFillColor.Color = Color.Red;
      
    pres.Save("pres.pptx", SaveFormat.Pptx);
}

todo:image_alt_text

Preguntas frecuentes

¿Puedo cambiar el orden (clasificación) de los segmentos en Sunburst/Treemap?

No. PowerPoint ordena los segmentos automáticamente (normalmente por valores descendentes, en sentido horario). Aspose.Slides replica este comportamiento: no puede cambiar el orden directamente; debe hacerlo 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 establezca explícitamente rellenos/fuentes. Para obtener resultados consistentes, fije rellenos sólidos y formato de texto en los niveles requeridos.

¿La exportación a PDF/PNG preservará los colores de rama personalizados y la configuración de 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 superposiciones personalizadas sobre el gráfico?

Sí. Después de validar la disposición del gráfico, ActualX/ActualY están disponibles para los elementos (por ejemplo, una DataLabel), lo que ayuda a posicionar con precisión las superposiciones.