Crear o Actualizar Gráficos de Presentación de PowerPoint en Java

Resumen

Este artículo describe cómo crear gráficos de Presentación de PowerPoint en Java. También puedes actualizar los gráficos en Java. Cubre estos temas.

Gráfico: Normal

Gráfico: Disperso

Gráfico: Circular

Gráfico: Mapa de Árbol

Gráfico: Acciones

Gráfico: Caja y Bigotes

Gráfico: Embudo

Gráfico: Radial

Gráfico: Multicategoría

Gráfico: Mapa

Acción: Actualizar Gráfico

Crear Gráfico

Los gráficos ayudan a las personas a visualizar datos rápidamente y obtener información, que pueden no ser obvios de inmediato en una tabla o hoja de cálculo.

¿Por qué crear gráficos?

Usando gráficos, puedes:

  • agregar, condensar o resumir grandes cantidades de datos en una sola diapositiva en una presentación
  • exponer patrones y tendencias en los datos
  • deducir la dirección y el impulso de los datos a lo largo del tiempo o con respecto a una unidad de medida específica
  • identificar valores atípicos, aberraciones, desviaciones, errores, datos sin sentido, etc.
  • comunicar o presentar datos complejos

En PowerPoint, puedes crear gráficos mediante la función de inserción, que proporciona plantillas utilizadas para diseñar muchos tipos de gráficos. Usando Aspose.Slides, puedes crear gráficos normales (basados en tipos de gráficos populares) y gráficos personalizados.

Creando Gráficos Normales

Pasos: Crear Gráfico

Pasos de Código:

  1. Crea una instancia de la clase Presentation.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con algunos datos y especifica tu tipo de gráfico preferido.
  4. Agrega un título para el gráfico.
  5. Accede a la hoja de datos del gráfico.
  6. Limpia todas las series y categorías predeterminadas.
  7. Agrega nuevas series y categorías.
  8. Agrega algunos nuevos datos de gráfico para las series del gráfico.
  9. Agrega un color de relleno para las series del gráfico.
  10. Agrega etiquetas para las series del gráfico.
  11. Escribe la presentación modificada como un archivo PPTX.

Este código Java te muestra cómo crear un gráfico normal:

// Instancia una clase de presentación que representa un archivo PPTX
Presentation pres = new Presentation();
try {
    // Accede a la primera diapositiva
    ISlide sld = pres.getSlides().get_Item(0);
    
    // Agrega un gráfico con sus datos predeterminados
    IChart chart = sld.getShapes().addChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
    
    // Establece el título del gráfico
    chart.getChartTitle().addTextFrameForOverriding("Título de Muestra");
    chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
    chart.getChartTitle().setHeight(20);
    chart.hasTitle();
    
    // Establece la primera serie para mostrar valores
    chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
    
    // Establece el índice para la hoja de datos del gráfico
    int defaultWorksheetIndex = 0;
    
    // Obtiene la hoja de trabajo de datos del gráfico
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // Elimina las series y categorías generadas por defecto
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();
    int s = chart.getChartData().getSeries().size();
    s = chart.getChartData().getCategories().size();
    
    // Agrega nuevas series
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Serie 1"),chart.getType());
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Serie 2"),chart.getType());
    
    // Agrega nuevas categorías
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Categoría 1"));
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Categoría 2"));
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Categoría 3"));
    
    // Toma la primera serie del gráfico
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);
    
    // Ahora pobla los datos de la serie
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
    
    // Establece el color de relleno para la serie
    series.getFormat().getFill().setFillType(FillType.Solid);
    series.getFormat().getFill().getSolidFillColor().setColor(Color.RED);
    
    // Toma la segunda serie del gráfico
    series = chart.getChartData().getSeries().get_Item(1);
    
    // Pobla los datos de la serie
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));
    
    // Establece el color de relleno para la serie
    series.getFormat().getFill().setFillType(FillType.Solid);
    series.getFormat().getFill().getSolidFillColor().setColor(Color.GREEN);
    
    // Crea etiquetas personalizadas para cada categoría de la nueva serie
    // Establece la primera etiqueta para mostrar el nombre de la categoría
    IDataLabel lbl = series.getDataPoints().get_Item(0).getLabel();
    lbl.getDataLabelFormat().setShowCategoryName(true);
    
    lbl = series.getDataPoints().get_Item(1).getLabel();
    lbl.getDataLabelFormat().setShowSeriesName(true);
    
    // Muestra el valor para la tercera etiqueta
    lbl = series.getDataPoints().get_Item(2).getLabel();
    lbl.getDataLabelFormat().setShowValue(true);
    lbl.getDataLabelFormat().setShowSeriesName(true);
    lbl.getDataLabelFormat().setSeparator("/");
    
    // Guarda la presentación con el gráfico
    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Creando Gráficos Dispersos

Los gráficos dispersos (también conocidos como gráficos dispersos o gráficos x-y) se utilizan a menudo para verificar patrones o demostrar correlaciones entre dos variables.

Puedes querer usar un gráfico disperso cuando:

  • tienes datos numéricos emparejados
  • tienes 2 variables que se emparejan bien juntas
  • quieres determinar si 2 variables están relacionadas
  • tienes una variable independiente que tiene múltiples valores para una variable dependiente

Pasos: Crear Gráfico Disperso en Java | Pasos: Crear Gráfico Disperso de PowerPoint en Java | Pasos: Crear Gráfico Disperso de Presentación de PowerPoint en Java

  1. Sigue los pasos mencionados anteriormente en Creando Gráficos Normales.
  2. Para el tercer paso, agrega un gráfico con algunos datos y especifica tu tipo de gráfico como uno de los siguientes:
    1. ChartType.ScatterWithMarkers - Representa el Gráfico Disperso.
    2. ChartType.ScatterWithSmoothLinesAndMarkers - Representa el Gráfico Disperso conectado por curvas, con marcadores de datos.
    3. ChartType.ScatterWithSmoothLines - Representa el Gráfico Disperso conectado por curvas, sin marcadores de datos.
    4. ChartType.ScatterWithStraightLinesAndMarkers - Representa el Gráfico Disperso conectado por líneas, con marcadores de datos.
    5. ChartType.ScatterWithStraightLines - Representa el Gráfico Disperso conectado por líneas, sin marcadores de datos.

Este código Java te muestra cómo crear gráficos dispersos con una serie diferente de marcadores:

// Instancia una clase de presentación que representa un archivo PPTX
Presentation pres = new Presentation();
try {
    // Accede a la primera diapositiva
    ISlide slide = pres.getSlides().get_Item(0);

    // Crea el gráfico predeterminado
    IChart chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
    
    // Obtiene el índice de la hoja de datos del gráfico predeterminado
    int defaultWorksheetIndex = 0;
    
    // Obtiene la hoja de trabajo de datos del gráfico
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // Elimina la serie de demostración
    chart.getChartData().getSeries().clear();
    
    // Agrega nuevas series
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Serie 1"), chart.getType());
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "Serie 2"), chart.getType());
    
    // Toma la primera serie del gráfico
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);
    
    // Agrega un nuevo punto (1:3) a la serie
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 1), fact.getCell(defaultWorksheetIndex, 2, 2, 3));
    
    // Agrega un nuevo punto (2:10)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 2), fact.getCell(defaultWorksheetIndex, 3, 2, 10));
    
    // Cambia el tipo de la serie
    series.setType(ChartType.ScatterWithStraightLinesAndMarkers);
    
    // Cambia el marcador de la serie del gráfico
    series.getMarker().setSize(10);
    series.getMarker().setSymbol(MarkerStyleType.Star);
    
    // Toma la segunda serie del gráfico
    series = chart.getChartData().getSeries().get_Item(1);
    
    // Agrega un nuevo punto (5:2) allí
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 5), fact.getCell(defaultWorksheetIndex, 2, 4, 2));
    
    // Agrega un nuevo punto (3:1)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 3), fact.getCell(defaultWorksheetIndex, 3, 4, 1));
    
    // Agrega un nuevo punto (2:2)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 4, 3, 2), fact.getCell(defaultWorksheetIndex, 4, 4, 2));
    
    // Agrega un nuevo punto (5:1)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 5, 3, 5), fact.getCell(defaultWorksheetIndex, 5, 4, 1));
    
    // Cambia el marcador de la serie del gráfico
    series.getMarker().setSize(10);
    series.getMarker().setSymbol(MarkerStyleType.Circle);
    
    pres.save("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Creando Gráficos Circulares

Los gráficos circulares son mejores para mostrar la relación de parte a todo en los datos, especialmente cuando los datos contienen etiquetas categóricas con valores numéricos. Sin embargo, si tus datos contienen muchas partes o etiquetas, puedes considerar usar un gráfico de barras en su lugar.

Pasos: Crear Gráfico Circular en Java | Pasos: Crear Gráfico Circular de PowerPoint en Java | Pasos: Crear Gráfico Circular de Presentación de PowerPoint en Java

  1. Crea una instancia de la clase Presentation.
  2. Obtén la referencia de una diapositiva por su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (en este caso, ChartType.Pie).
  4. Accede a los datos del gráfico IChartDataWorkbook.
  5. Limpia las series y categorías predeterminadas.
  6. Agrega nuevas series y categorías.
  7. Agrega nuevos datos de gráfico para las series del gráfico.
  8. Agrega nuevos puntos para gráficos y agrega colores personalizados para los sectores del gráfico circular.
  9. Establece etiquetas para las series.
  10. Establece líneas de líder para las etiquetas de las series.
  11. Establece el ángulo de rotación para los sectores del gráfico circular.
  12. Escribe la presentación modificada a un archivo PPTX.

Este código Java te muestra cómo crear un gráfico circular:

// Instancia una clase de presentación que representa un archivo PPTX
Presentation pres = new Presentation();
try {
    // Accede a la primera diapositiva
    ISlide slides = pres.getSlides().get_Item(0);
    
    // Agrega un gráfico con datos predeterminados
    IChart chart = slides.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400);
    
    // Establece el título del gráfico
    chart.getChartTitle().addTextFrameForOverriding("Título de Muestra");
    chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
    chart.getChartTitle().setHeight(20);
    chart.setTitle(true);
    
    // Establece la primera serie para mostrar valores
    chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
    
    // Establece el índice para la hoja de datos del gráfico
    int defaultWorksheetIndex = 0;
    
    // Obtiene la hoja de trabajo de datos del gráfico
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // Elimina las series y categorías generadas por defecto
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();
    
    // Agrega nuevas categorías
    chart.getChartData().getCategories().add(fact.getCell(0, 1, 0, "Primer Trimestre"));
    chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "Segundo Trimestre"));
    chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "Tercer Trimestre"));
    
    // Agrega nuevas series
    IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Serie 1"), chart.getType());
    
    // Población de los datos de la serie
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
    
    // No funciona en la nueva versión
    // Agregar puntos nuevos y establecer el color de los sectores
    // series.IsColorVaried = true;
    chart.getChartData().getSeriesGroups().get_Item(0).setColorVaried(true);
    
    IChartDataPoint point = series.getDataPoints().get_Item(0);
    point.getFormat().getFill().setFillType(FillType.Solid);
    point.getFormat().getFill().getSolidFillColor().setColor(Color.CYAN);
	
    // Establece el borde del sector
    point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
    point.getFormat().getLine().setWidth(3.0);
    point.getFormat().getLine().setStyle(LineStyle.ThinThick);
    point.getFormat().getLine().setDashStyle(LineDashStyle.DashDot);
    
    IChartDataPoint point1 = series.getDataPoints().get_Item(1);
    point1.getFormat().getFill().setFillType(FillType.Solid);
    point1.getFormat().getFill().getSolidFillColor().setColor(Color.ORANGE);
    
    // Establece el borde del sector
    point1.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point1.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
    point1.getFormat().getLine().setWidth(3.0);
    point1.getFormat().getLine().setStyle(LineStyle.Single);
    point1.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDot);
    
    IChartDataPoint point2 = series.getDataPoints().get_Item(2);
    point2.getFormat().getFill().setFillType(FillType.Solid);
    point2.getFormat().getFill().getSolidFillColor().setColor(Color.YELLOW);
    
    // Establece el borde del sector
    point2.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point2.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED);
    point2.getFormat().getLine().setWidth(2.0);
    point2.getFormat().getLine().setStyle(LineStyle.ThinThin);
    point2.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDotDot);
    
    // Crea etiquetas personalizadas para cada una de las categorías para la nueva serie
    IDataLabel lbl1 = series.getDataPoints().get_Item(0).getLabel();
    
    // lbl.ShowCategoryName = true;
    lbl1.getDataLabelFormat().setShowValue(true);
    
    IDataLabel lbl2 = series.getDataPoints().get_Item(1).getLabel();
    lbl2.getDataLabelFormat().setShowValue(true);
    lbl2.getDataLabelFormat().setShowLegendKey(true);
    lbl2.getDataLabelFormat().setShowPercentage(true);
    
    IDataLabel lbl3 = series.getDataPoints().get_Item(2).getLabel();
    lbl3.getDataLabelFormat().setShowSeriesName(true);
    lbl3.getDataLabelFormat().setShowPercentage(true);
    
    // Muestra las Líneas de Líder para el Gráfico
    series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(true);
    
    // Establece el ángulo de rotación para los Sectores del Gráfico Circular
    chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180);
    
    // Guarda la presentación con un gráfico
    pres.save("PieChart_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Creando Gráficos de Líneas

Los gráficos de líneas (también conocidos como gráficos de líneas) son mejores en situaciones donde deseas demostrar cambios en los valores a lo largo del tiempo. Usando un gráfico de líneas, puedes comparar muchos datos a la vez, rastrear cambios y tendencias a lo largo del tiempo, resaltar anomalías en las series de datos, etc.

  1. Crea una instancia de la clase Presentation.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (en este caso, ChartType.Line).
  4. Accede a los datos del gráfico IChartDataWorkbook.
  5. Limpia las series y categorías predeterminadas.
  6. Agrega nuevas series y categorías.
  7. Agrega nuevos datos de gráfico para las series del gráfico.
  8. Escribe la presentación modificada a un archivo PPTX.

Este código Java te muestra cómo crear un gráfico de líneas:

Presentation pres = new Presentation();
try {
    IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);

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

Por defecto, los puntos en un gráfico de líneas están unidos por líneas continuas rectas. Si deseas que los puntos estén unidos por guiones en su lugar, puedes especificar tu tipo de guión preferido de esta manera:

IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);

for (IChartSeries series : lineChart.getChartData().getSeries())
{
    series.getFormat().getLine().setDashStyle(LineDashStyle.Dash);
}

Creando Gráficos de Mapa de Árbol

Los gráficos de mapa de árbol son mejores para datos de ventas cuando deseas mostrar el tamaño relativo de las categorías de datos y (al mismo tiempo) atraer rápidamente la atención a los elementos que son grandes contribuyentes a cada categoría.

Pasos: Crear Gráfico Mapa de Árbol en Java | Pasos: Crear Gráfico Mapa de Árbol de PowerPoint en Java | Pasos: Crear Gráfico Mapa de Árbol de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (en este caso, ChartType.TreeMap).
  4. Accede a los datos del gráfico IChartDataWorkbook.
  5. Limpia las series y categorías predeterminadas.
  6. Agrega nuevas series y categorías.
  7. Agrega nuevos datos de gráfico para las series del gráfico.
  8. Escribe la presentación modificada a un archivo PPTX.

Este código Java te muestra cómo crear un gráfico de mapa de árbol:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Treemap, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    //rama 1
    IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "Hoja1"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo1");
    leaf.getGroupingLevels().setGroupingItem(2, "Rama1");

    chart.getChartData().getCategories().add(wb.getCell(0, "C2", "Hoja2"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "Hoja3"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C4", "Hoja4"));

    //rama 2
    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "Hoja5"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo3");
    leaf.getGroupingLevels().setGroupingItem(2, "Rama2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C6", "Hoja6"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "Hoja7"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo4");

    chart.getChartData().getCategories().add(wb.getCell(0, "C8", "Hoja8"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Treemap);
    series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D1", 4));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D2", 5));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D3", 3));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D4", 6));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D5", 9));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D6", 9));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D7", 4));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D8", 3));

    series.setParentLabelLayout(ParentLabelLayoutType.Overlapping);

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

Creando Gráficos de Acciones

Pasos: Crear Gráfico de Acciones en Java | Pasos: Crear Gráfico de Acciones de PowerPoint en Java | Pasos: Crear Gráfico de Acciones de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (ChartType.OpenHighLowClose).
  4. Accede a los datos del gráfico IChartDataWorkbook.
  5. Limpia las series y categorías predeterminadas.
  6. Agrega nuevas series y categorías.
  7. Agrega nuevos datos de gráfico para las series del gráfico.
  8. Especifica el formato de HiLowLines.
  9. Escribe la presentación modificada en un archivo PPTX.

Muestra de código Java utilizado para crear un gráfico de acciones:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();

    chart.getChartData().getCategories().add(wb.getCell(0, 1, 0, "A"));
    chart.getChartData().getCategories().add(wb.getCell(0, 2, 0, "B"));
    chart.getChartData().getCategories().add(wb.getCell(0, 3, 0, "C"));

    chart.getChartData().getSeries().add(wb.getCell(0, 0, 1, "Abrir"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 2, "Alto"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 3, "Bajo"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 4, "Cerrar"), chart.getType());

    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 1, 72));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 1, 25));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 1, 38));

    series = chart.getChartData().getSeries().get_Item(1);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 2, 172));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 2, 57));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 2, 57));

    series = chart.getChartData().getSeries().get_Item(2);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 3, 12));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 3, 12));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 3, 13));

    series = chart.getChartData().getSeries().get_Item(3);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 4, 25));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 4, 38));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 4, 50));

    chart.getChartData().getSeriesGroups().get_Item(0).getUpDownBars().setUpDownBars(true);
    chart.getChartData().getSeriesGroups().get_Item(0).getHiLowLinesFormat().getLine().getFillFormat().setFillType(FillType.Solid);

    for (IChartSeries ser : chart.getChartData().getSeries())
    {
        ser.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
    }

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

Creando Gráficos de Caja y Bigotes

Pasos: Crear Gráfico de Caja y Bigotes en Java | Pasos: Crear Gráfico de Caja y Bigotes de PowerPoint en Java | Pasos: Crear Gráfico de Caja y Bigotes de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (ChartType.BoxAndWhisker).
  4. Accede a los datos del gráfico IChartDataWorkbook.
  5. Limpia las series y categorías predeterminadas.
  6. Agrega nuevas series y categorías.
  7. Agrega nuevos datos de gráfico para las series del gráfico.
  8. Escribe la presentación modificada como un archivo PPTX.

Este código Java te muestra cómo crear un gráfico de caja y bigotes:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.BoxAndWhisker, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    chart.getChartData().getCategories().add(wb.getCell(0, "A1", "Categoría 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A2", "Categoría 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A3", "Categoría 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A4", "Categoría 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A5", "Categoría 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A6", "Categoría 1"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.BoxAndWhisker);

    series.setQuartileMethod(QuartileMethodType.Exclusive);
    series.setShowMeanLine(true);
    series.setShowMeanMarkers(true);
    series.setShowInnerPoints(true);
    series.setShowOutlierPoints(true);

    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B1", 15));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B2", 41));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B3", 16));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B4", 10));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B5", 23));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B6", 16));

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

Creando Gráficos de Embudo

Pasos: Crear Gráfico de Embudo en Java | Pasos: Crear Gráfico de Embudo de PowerPoint en Java | Pasos: Crear Gráfico de Embudo de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (ChartType.Funnel).
  4. Escribe la presentación modificada como un archivo PPTX.

El código Java muestra cómo crear un gráfico de embudo:

Presentation pres = new Presentation();
try {    
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Funnel, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();

    wb.clear(0);

    chart.getChartData().getCategories().add(wb.getCell(0, "A1", "Categoría 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A2", "Categoría 2"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A3", "Categoría 3"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A4", "Categoría 4"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A5", "Categoría 5"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A6", "Categoría 6"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Funnel);

    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B1", 50));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B2", 100));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B3", 200));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B4", 300));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B5", 400));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B6", 500));

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

Creando Gráficos de Radiales

Pasos: Crear Gráfico Radial en Java | Pasos: Crear Gráfico Radial de PowerPoint en Java | Pasos: Crear Gráfico Radial de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (en este caso,ChartType.sunburst).
  4. Escribe la presentación modificada como un archivo PPTX.

Este código Java te muestra cómo crear un gráfico radial:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    //rama 1
    IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "Hoja1"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo1");
    leaf.getGroupingLevels().setGroupingItem(2, "Rama1");

    chart.getChartData().getCategories().add(wb.getCell(0, "C2", "Hoja2"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "Hoja3"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C4", "Hoja4"));

    //rama 2
    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "Hoja5"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo3");
    leaf.getGroupingLevels().setGroupingItem(2, "Rama2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C6", "Hoja6"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "Hoja7"));
    leaf.getGroupingLevels().setGroupingItem(1, "Tallo4");

    chart.getChartData().getCategories().add(wb.getCell(0, "C8", "Hoja8"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Sunburst);
    series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D1", 4));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D2", 5));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D3", 3));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D4", 6));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D5", 9));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D6", 9));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D7", 4));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D8", 3));
    
    pres.save("Sunburst.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Creando Gráficos de Histograma

Pasos: Crear Gráfico de Histograma en Java | Pasos: Crear Gráfico de Histograma de PowerPoint en Java | Pasos: Crear Gráfico de Histograma de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (ChartType.Histogram).
  4. Accede a los datos del gráfico IChartDataWorkbook.
  5. Limpia las series y categorías predeterminadas.
  6. Agrega nuevas series y categorías.
  7. Escribe la presentación modificada a un archivo PPTX.

Este código Java te muestra cómo crear un gráfico de histograma:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Histogram);
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A1", 15));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A2", -41));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A3", 16));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A4", 10));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A5", -23));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A6", 16));

    chart.getAxes().getHorizontalAxis().setAggregationType(AxisAggregationType.Automatic;)

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

Creando Gráficos Radiales

Pasos: Crear Gráfico Radial en Java | Pasos: Crear Gráfico Radial de PowerPoint en Java | Pasos: Crear Gráfico Radial de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con algunos datos y especifica tu tipo de gráfico preferido (ChartType.Radar en este caso).
  4. Escribe la presentación modificada en un archivo PPTX.

Este código Java te muestra cómo crear un gráfico radial:

Presentation pres = new Presentation();
try {
    pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Radar, 20, 20, 400, 300);
    pres.save("Radar-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Creando Gráficos Multicategóricos

Pasos: Crear Gráfico Multicategórico en Java | Pasos: Crear Gráfico Multicategórico de PowerPoint en Java | Pasos: Crear Gráfico Multicategórico de Presentación de PowerPoint en Java

  1. Crea una instancia de la Presentation class.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (ChartType.ClusteredColumn).
  4. Accede a los datos del gráfico IChartDataWorkbook.
  5. Limpia las series y categorías predeterminadas.
  6. Agrega nuevas series y categorías.
  7. Agrega nuevos datos de gráfico para las series del gráfico.
  8. Escribe la presentación modificada en un archivo PPTX.

Este código Java te muestra cómo crear un gráfico multicategórico:

Presentation pres = new Presentation();
try {
    IChart ch = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 600, 450);
    ch.getChartData().getSeries().clear();
    ch.getChartData().getCategories().clear();
    
    IChartDataWorkbook fact = ch.getChartData().getChartDataWorkbook();
    fact.clear(0);
    int defaultWorksheetIndex = 0;

    IChartCategory category = ch.getChartData().getCategories().add(fact.getCell(0, "c2", "A"));
    category.getGroupingLevels().setGroupingItem(1, "Grupo1");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c3", "B"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c4", "C"));
    category.getGroupingLevels().setGroupingItem(1, "Grupo2");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c5", "D"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c6", "E"));
    category.getGroupingLevels().setGroupingItem(1, "Grupo3");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c7", "F"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c8", "G"));
    category.getGroupingLevels().setGroupingItem(1, "Grupo4");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c9", "H"));

    // Agregando Series
    IChartSeries series = ch.getChartData().getSeries().add(fact.getCell(0, "D1", "Serie 1"),
            ChartType.ClusteredColumn);

    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D2", 10));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D3", 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D4", 30));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D5", 40));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D6", 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D7", 60));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D8", 70));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D9", 80));
    
    // Guarda la presentación con el gráfico
    pres.save("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Creando Gráficos de Mapa

Un gráfico de mapa es una visualización de un área que contiene datos. Los gráficos de mapa son mejores para comparar datos o valores a través de regiones geográficas.

Pasos: Crear Gráfico de Mapa en Java | Pasos: Crear Gráfico de Mapa de PowerPoint en Java | Pasos: Crear Gráfico de Mapa de Presentación de PowerPoint en Java

Este código Java te muestra cómo crear un gráfico de mapa:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Map, 50, 50, 500, 400);
    pres.save("mapChart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Creando Gráficos de Combinación

Un gráfico de combinación (o gráfico combinado) es un gráfico que combina dos o más gráficos en un solo gráfico. Tal gráfico te permite resaltar, comparar o revisar las diferencias entre dos (o más) conjuntos de datos. De esta manera, ves la relación (si la hay) entre los conjuntos de datos.

combination-chart-ppt

Este código Java te muestra cómo crear un gráfico de combinación en PowerPoint:

private static void createComboChart()
{
    Presentation pres = new Presentation();
    {
        IChart chart = createChart(pres.getSlides().get_Item(0));
        addFirstSeriesToChart(chart);
        addSecondSeriesToChart(chart);
        pres.save("combo-chart.pptx", SaveFormat.Pptx);
    }
}

private static IChart createChart(ISlide slide)
{
    IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 500, 400);
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();

    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
    final int worksheetIndex = 0;

    chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 1, "Serie 1"), chart.getType());
    chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 2, "Serie 2"), chart.getType());

    chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 1, 0, "Categoría 1"));
    chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 2, 0, "Categoría 2"));
    chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 3, 0, "Categoría 3"));

    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 3, 1, 30));

    series = chart.getChartData().getSeries().get_Item(1);

    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 1, 2, 30));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 2, 2, 10));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 3, 2, 60));

    return chart;
}

private static void addFirstSeriesToChart(IChart chart)
{
    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
    final int worksheetIndex = 0;

    IChartSeries series = chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 3, "Serie 3"), ChartType.ScatterWithSmoothLines);

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 0, 1, 3),
            workbook.getCell(worksheetIndex, 0, 2, 5));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 1, 3, 10),
            workbook.getCell(worksheetIndex, 1, 4, 13));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 2, 3, 20),
            workbook.getCell(worksheetIndex, 2, 4, 15));

    series.setPlotOnSecondAxis(true);
}

private static void addSecondSeriesToChart(IChart chart)
{
    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
    final int worksheetIndex = 0;

    IChartSeries series = chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 5, "Serie 4"),
            ChartType.ScatterWithStraightLinesAndMarkers);

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 1, 3, 5),
            workbook.getCell(worksheetIndex, 1, 4, 2));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 1, 5, 10),
            workbook.getCell(worksheetIndex, 1, 6, 7));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 2, 5, 15),
            workbook.getCell(worksheetIndex, 2, 6, 12));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 3, 5, 12),
            workbook.getCell(worksheetIndex, 3, 6, 9));

    series.setPlotOnSecondAxis(true);
}

Actualizar Gráficos

Pasos: Actualizar Gráfico de PowerPoint en Java | Pasos: Actualizar Gráfico de Presentación | Pasos: Actualizar Gráfico de Presentación de PowerPoint en Java

  1. Instancia una clase Presentation que representa la presentación que contiene el gráfico que deseas actualizar.
  2. Obtén la referencia de una diapositiva por su índice.
  3. Recorre todas las formas para encontrar el gráfico deseado.
  4. Accede a la hoja de datos del gráfico.
  5. Modifica los datos de la serie de gráficos cambiando los valores de las series.
  6. Agrega una nueva serie y pobla los datos en ella.
  7. Escribe la presentación modificada como un archivo PPTX.

Este código Java te muestra cómo actualizar un gráfico:

Presentation pres = new Presentation();
try {
    // Accede a la primera diapositiva
    ISlide sld = pres.getSlides().get_Item(0);

    // Obtén el gráfico con datos predeterminados
    IChart chart = (IChart)sld.getShapes().get_Item(0);

    // Estableciendo el índice de la hoja de datos del gráfico
    int defaultWorksheetIndex = 0;

    // Obteniendo la hoja de trabajo de datos del gráfico
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();

    // Cambiando el nombre de la categoría del gráfico
    fact.getCell(defaultWorksheetIndex, 1, 0, "Categoría Modificada 1");
    fact.getCell(defaultWorksheetIndex, 2, 0, "Categoría Modificada 2");

    // Toma la primera serie del gráfico
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    // Ahora actualizando los datos de la serie
    fact.getCell(defaultWorksheetIndex, 0, 1, "Nueva_Serie1");// Modificando el nombre de la serie
    series.getDataPoints().get_Item(0).getValue().setData(90);
    series.getDataPoints().get_Item(1).getValue().setData(123);
    series.getDataPoints().get_Item(2).getValue().setData(44);

    // Toma la segunda serie del gráfico
    series = chart.getChartData().getSeries().get_Item(1);

    // Ahora actualizando los datos de la serie
    fact.getCell(defaultWorksheetIndex, 0, 2, "Nueva_Serie2");// Modificando el nombre de la serie
    series.getDataPoints().get_Item(0).getValue().setData(23);
    series.getDataPoints().get_Item(1).getValue().setData(67);
    series.getDataPoints().get_Item(2).getValue().setData(99);

    // Ahora, agregando una nueva serie
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 3, "Serie 3"), chart.getType());

    // Toma la tercera serie del gráfico
    series = chart.getChartData().getSeries().get_Item(2);

    // Ahora poblamos los datos de la serie
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 3, 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 30));

    chart.setType(ChartType.ClusteredCylinder);

    // Guarda la presentación con el gráfico
    pres.save("AsposeChartModified_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Estableciendo Rango de Datos para Gráficos

Para establecer el rango de datos para un gráfico, haz esto:

  1. Instancia una clase Presentation que represente la presentación que contiene el gráfico.
  2. Obtén la referencia de una diapositiva a través de su índice.
  3. Recorre todas las formas para encontrar el gráfico deseado.
  4. Accede a los datos del gráfico y establece el rango.
  5. Guarda la presentación modificada como un archivo PPTX.

Este código Java te muestra cómo establecer el rango de datos para un gráfico:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IChart chart = (IChart)slide.getShapes().get_Item(0);
    
    chart.getChartData().setRange("Sheet1!A1:B4");
    
    pres.save("SetDataRange_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Usando Marcadores Predeterminados en Gráficos

Cuando usas un marcador predeterminado en gráficos, cada serie de gráficos obtiene símbolos de marcadores predeterminados diferentes automáticamente.

Este código Java te muestra cómo establecer automáticamente el marcador de la serie en un gráfico:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IChart chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 10, 10, 400, 400);

    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();

    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Serie 1"), chart.getType());
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    chart.getChartData().getCategories().add(fact.getCell(0, 1, 0, "C1"));
    series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 1, 1, 24));
    chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "C2"));
    series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 2, 1, 23));
    chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "C3"));
    series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 3, 1, -10));
    chart.getChartData().getCategories().add(fact.getCell(0, 4, 0, "C4"));
    series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 4, 1, null));

    chart.getChartData().getSeries().add(fact.getCell(0, 0, 2, "Serie 2"), chart.getType());
    //Toma la segunda serie del gráfico
    IChartSeries series2 = chart.getChartData().getSeries().get_Item(1);

    //Ahora poblamos los datos de la serie
    series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 1, 2, 30));
    series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 2, 2, 10));
    series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 3, 2, 60));
    series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 4, 2, 40));

    chart.setLegend(true);
    chart.getLegend().setOverlay(false