Crear gráficos en presentaciones de PowerPoint en Python

Los gráficos se utilizan para la representación gráfica de los datos, lo que facilita el análisis. Por lo tanto, MS PowerPoint admite una variedad de gráficos para visualizar los datos de diferentes maneras. Entre todos, los gráficos más utilizados incluyen gráficos circulares, gráficos de líneas, gráficos de barras, histogramas, gráficos de cotizaciones, etc. En este artículo, aprenderá cómo crear estos gráficos en PowerPoint PPT o PPTX en Python.

Biblioteca de Python para crear gráficos en PowerPoint PPT

Para crear gráficos en PowerPoint PPT/PPTX, usaremos Aspose.Slides for Python via .NET. Es una biblioteca rica en funciones que proporciona un paquete completo para crear y manipular presentaciones de PowerPoint. Puede instalarlo desde PyPI usando el siguiente comando pip.

> pip install aspose.slides

Aspose.Slides admite una variedad de gráficos que se pueden agregar a las presentaciones de forma dinámica. En las siguientes secciones, demostraremos cómo crear algunos tipos populares de gráficos.

Crear gráfico de columnas en PowerPoint PPT en Python

En esta sección, aprenderá cómo crear un gráfico de columnas en una presentación de PowerPoint en Python. Los siguientes son los pasos para realizar esta operación.

  • Primero, crea una instancia de la clase Presentation.
  • Obtenga la referencia de la diapositiva de Presentations.slides en un objeto.
  • Agregue un gráfico de columnas agrupadas con datos predeterminados utilizando el método Slide.shapes.add\chart().
  • Establezca el título del gráfico y otras propiedades, como el formato de texto.
  • Acceda al Workbook de datos del gráfico en un objeto usando el método Chart.chart\data.chart\data\workbook().
  • Borre todas las series y categorías predeterminadas de los datos del gráfico utilizando los métodos Chart.chart\data.series.clear() y Chart.chart\data.categories.clear() respectivamente.
  • Añadir nuevas series y categorías.
  • Acceda a cada serie de gráficos en un objeto y agréguele puntos de datos.
  • Agregue color de relleno para series de gráficos y establezca etiquetas.
  • Finalmente, guarde la presentación usando el método Presentation.save(string, SaveFormat).

El siguiente ejemplo de código muestra cómo crear un gráfico de columnas en PowerPoint PPT en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Access first slide
    sld = pres.slides[0]

    # Add chart with default data
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # Set chart title
    chart.chart_title.add_text_frame_for_overriding("Sample Title")
    chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
    chart.chart_title.height = 20
    chart.has_title = True

    # Set first series to show values
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Set the index of chart data sheet
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete default generated series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # Add new series
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.type)
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.type)

    # Add new categories
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"))

    # Take first chart series
    series = chart.chart_data.series[0]

    # Populate series data
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))

    # Set fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.blue

    # Take second chart series
    series = chart.chart_data.series[1]

    # Populate series data
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 2, 30))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 2, 10))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 2, 60))

    # Set fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # First label will show category name
    lbl = series.data_points[0].label
    lbl.data_label_format.show_category_name = True

    lbl = series.data_points[1].label
    lbl.data_label_format.show_series_name = True

    # Show value for third label
    lbl = series.data_points[2].label
    lbl.data_label_format.show_value = True
    lbl.data_label_format.show_series_name = True
    lbl.data_label_format.separator = "/"

    # Save presentation
    pres.save("column-chart.pptx", slides.export.SaveFormat.PPTX)

La siguiente es la captura de pantalla del gráfico de columnas resultante.

crear un gráfico de columnas en powerpoint en Python

Crear gráfico de dispersión en PowerPoint PPT en Python

Los siguientes son los pasos para crear un gráfico de dispersión en el PPT de PowerPoint en Python.

  • Primero, crea una instancia de la clase Presentation.
  • Obtenga la referencia de la diapositiva de Presentations.slides en un objeto.
  • Agregue un gráfico de dispersión con datos predeterminados utilizando el método Slide.shapes.add\chart().
  • Acceda al Workbook de datos del gráfico en un objeto usando el método Chart.chart\data.chart\data\workbook().
  • Agregue nuevas series a los datos del gráfico.
  • Acceda a cada serie en un objeto y agregue puntos de datos a la serie.
  • Establecer el marcador para la serie.
  • Finalmente, guarde la presentación usando el método Presentation.save(string, SaveFormat).

El siguiente ejemplo de código muestra cómo crear un gráfico de dispersión en PowerPoint PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Access first slide    
    slide = pres.slides[0]

    # Create the default chart
    chart = slide.shapes.add_chart(slides.charts.ChartType.SCATTER_WITH_SMOOTH_LINES, 0, 0, 400, 400)

    # Get the default chart data worksheet index
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete demo series
    chart.chart_data.series.clear()

    # Add new series
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.type)
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.type)

    # Take first chart series
    series = chart.chart_data.series[0]

    # Add new point (1:3)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 1), fact.get_cell(defaultWorksheetIndex, 2, 2, 3))

    # Add new point (2:10)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 2), fact.get_cell(defaultWorksheetIndex, 3, 2, 10))

    # Edit the type of series
    series.type = slides.charts.ChartType.SCATTER_WITH_STRAIGHT_LINES_AND_MARKERS

    # Change the chart series marker
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.STAR

    # Take second chart series
    series = chart.chart_data.series[1]

    # Add new point (5:2)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 2, 3, 5), fact.get_cell(defaultWorksheetIndex, 2, 4, 2))

    # Add new point (3:1)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 3, 3, 3), fact.get_cell(defaultWorksheetIndex, 3, 4, 1))

    # Add new point (2:2)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 4, 3, 2), fact.get_cell(defaultWorksheetIndex, 4, 4, 2))

    # Add new point (5:1)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 5, 3, 5), fact.get_cell(defaultWorksheetIndex, 5, 4, 1))

    # Change the chart series marker
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.CIRCLE

    # Save presentation
    pres.save("scatter-chart.pptx", slides.export.SaveFormat.PPTX)

La siguiente captura de pantalla muestra el gráfico de dispersión resultante.

crear un gráfico de dispersión en powerpoint en Python

Crear gráfico circular en PowerPoint PPT en Python

Los siguientes son los pasos para crear un gráfico circular en un PPT de PowerPoint en Python.

  • Primero, crea una instancia de la clase Presentation.
  • Obtenga la referencia de la diapositiva de Presentations.slides en un objeto.
  • Agregue un gráfico circular con datos predeterminados usando el método Slide.shapes.add\chart().
  • Establezca el título del gráfico y otras propiedades, como el formato de texto.
  • Establecer la visibilidad de los valores.
  • Borre todas las series y categorías predeterminadas de los datos del gráfico utilizando los métodos Chart.chart\data.series.clear() y Chart.chart\data.categories.clear() respectivamente.
  • Acceda al Workbook de datos del gráfico en un objeto usando el método Chart.chart\data.chart\data\workbook().
  • Agregue nuevas categorías a los datos del gráfico.
  • Agregue nuevas series a los datos del gráfico.
  • Acceda a cada serie en un objeto y agregue puntos de datos a la serie.
  • Acceda a cada punto de datos y establezca su formato.
  • Aplique formato a las etiquetas de datos en los puntos de datos.
  • Establecer líneas guía y ángulos de rotación.
  • Finalmente, guarde la presentación usando el método Presentation.save(string, SaveFormat).

El siguiente ejemplo de código muestra cómo crear un gráfico circular en PowerPoint PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as presentation:

    # Access first slide
    slide = presentation.slides[0]

    # Add chart with default data
    chart = slide.shapes.add_chart(slides.charts.ChartType.PIE, 100, 100, 400, 400)

    # Set chart title
    chart.chart_title.add_text_frame_for_overriding("Sample Title")
    chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
    chart.chart_title.height = 20
    chart.has_title = True

    # Set first series to show values
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Set the index of chart data sheet
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete default generated series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Add new categories
    chart.chart_data.categories.add(fact.get_cell(0, 1, 0, "First Qtr"))
    chart.chart_data.categories.add(fact.get_cell(0, 2, 0, "2nd Qtr"))
    chart.chart_data.categories.add(fact.get_cell(0, 3, 0, "3rd Qtr"))

    # Add new series
    series = chart.chart_data.series.add(fact.get_cell(0, 0, 1, "Series 1"), chart.type)

    # Populate series data
    series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
    series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
    series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))

    # Add new points and set sector color
    chart.chart_data.series_groups[0].is_color_varied = True

    point = series.data_points[0]
    point.format.fill.fill_type = slides.FillType.SOLID
    point.format.fill.solid_fill_color.color = drawing.Color.orange

    # Set sector border
    point.format.line.fill_format.fill_type = slides.FillType.SOLID
    point.format.line.fill_format.solid_fill_color.color = drawing.Color.gray
    point.format.line.width = 3.0
    # point.format.line.style = slides.LineStyle.THIN_THICK
    # point.format.line.dash_style = slides.LineDashStyle.DASH_DOT

    point1 = series.data_points[1]
    point1.format.fill.fill_type = slides.FillType.SOLID
    point1.format.fill.solid_fill_color.color = drawing.Color.blue_violet

    # Set sector border
    point1.format.line.fill_format.fill_type = slides.FillType.SOLID
    point1.format.line.fill_format.solid_fill_color.color = drawing.Color.blue
    point1.format.line.width = 3.0
    # point1.format.line.style = slides.LineStyle.SINGLE
    # point1.format.line.dash_style = slides.LineDashStyle.LARGE_DASH_DOT

    point2 = series.data_points[2]
    point2.format.fill.fill_type = slides.FillType.SOLID
    point2.format.fill.solid_fill_color.color = drawing.Color.yellow_green

    # Set sector border
    point2.format.line.fill_format.fill_type = slides.FillType.SOLID
    point2.format.line.fill_format.solid_fill_color.color = drawing.Color.red
    point2.format.line.width = 2.0
    # point2.format.line.style = slides.LineStyle.THIN_THIN
    # point2.format.line.dash_style = slides.LineDashStyle.LARGE_DASH_DOT_DOT

    # Create custom labels for each of categories for new series
    lbl1 = series.data_points[0].label

    # lbl.show_category_name = True
    lbl1.data_label_format.show_value = True

    lbl2 = series.data_points[1].label
    lbl2.data_label_format.show_value = True
    lbl2.data_label_format.show_legend_key = True
    lbl2.data_label_format.show_percentage = True

    lbl3 = series.data_points[2].label
    lbl3.data_label_format.show_series_name = True
    lbl3.data_label_format.show_percentage = True

    # Show leader lines for chart
    # series.labels.default_data_label_format.show_leader_lines = True

    # Set rotation angle for pie chart sectors
    chart.chart_data.series_groups[0].first_slice_angle = 180

    # Save presentation
    presentation.save("pie-chart.pptx", slides.export.SaveFormat.PPTX)

La siguiente es la captura de pantalla del gráfico circular generado.

crear un gráfico circular en powerpoint en Python

Agregar gráfico de histograma en PowerPoint PPTX en Python

Los siguientes son los pasos para crear un gráfico de histograma en PowerPoint PPT usando Aspose.Slides for Python.

  • Primero, crea una instancia de la clase Presentation.
  • Obtenga la referencia de la diapositiva de Presentations.slides en un objeto.
  • Agregue un gráfico de histograma con datos predeterminados usando el método Slide.shapes.add\chart().
  • Borre las series y categorías predeterminadas.
  • Acceda al Workbook de datos del gráfico en un objeto usando el método Chart.chart\data.chart\data\workbook().
  • Agregue nuevas series a los datos del gráfico.
  • Acceda a cada serie en un objeto y agregue puntos de datos a la serie.
  • Establezca el tipo de agregación del eje del gráfico.
  • Finalmente, guarde la presentación usando el método Presentation.save(string, SaveFormat).

El siguiente ejemplo de código muestra cómo crear un gráfico de histograma en PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Add chart
    chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.HISTOGRAM, 50, 50, 500, 400)

    # Clear default categories and series
    chart.chart_data.categories.clear()
    chart.chart_data.series.clear()

    # Access workbook
    wb = chart.chart_data.chart_data_workbook

    wb.clear(0)

    # Add data points to series
    series = chart.chart_data.series.add(slides.charts.ChartType.HISTOGRAM)
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A1", 15))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A2", -41))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A3", 16))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A4", 10))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A5", -23))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A6", 16))

    # Set aggregation type
    chart.axes.horizontal_axis.aggregation_type = slides.charts.AxisAggregationType.AUTOMATIC

    # Save presentation
    pres.save("histogram-chart.pptx", slides.export.SaveFormat.PPTX)

La siguiente es la captura de pantalla del gráfico de histograma creado.

crear un gráfico de histograma en powerpoint en Python

Crear un gráfico de acciones en PowerPoint usando Python

Los gráficos de acciones también se encuentran entre los tipos de gráficos más utilizados en las presentaciones de PowerPoint. Los siguientes son los pasos para crear un gráfico de cotizaciones en un PPT en Python.

  • Primero, crea una instancia de la clase Presentation.
  • Obtenga la referencia de la diapositiva de Presentations.slides en un objeto.
  • Agregue un gráfico Abierto Alto Bajo Cierre con datos predeterminados usando el método Slide.shapes.add\chart().
  • Borre las series y categorías predeterminadas.
  • Acceda al Workbook de datos del gráfico en un objeto usando el método Chart.chart\data.chart\data\workbook().
  • Agregue nuevas series y categorías al gráfico.
  • Acceda a cada serie de gráficos y agregue puntos de datos.
  • Especifique el formato de Líneas altas y bajas.
  • Finalmente, guarde la presentación usando el método Presentation.save(string, SaveFormat).

El siguiente ejemplo de código muestra cómo agregar un gráfico de cotizaciones a PowerPoint PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Add chart
    chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.OPEN_HIGH_LOW_CLOSE, 50, 50, 600, 400, False)

    # Clear default series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Access workbook
    wb = chart.chart_data.chart_data_workbook

    # Add categories
    chart.chart_data.categories.add(wb.get_cell(0, 1, 0, "A"))
    chart.chart_data.categories.add(wb.get_cell(0, 2, 0, "B"))
    chart.chart_data.categories.add(wb.get_cell(0, 3, 0, "C"))

    # Add series
    chart.chart_data.series.add(wb.get_cell(0, 0, 1, "Open"), chart.type)
    chart.chart_data.series.add(wb.get_cell(0, 0, 2, "High"), chart.type)
    chart.chart_data.series.add(wb.get_cell(0, 0, 3, "Low"), chart.type)
    chart.chart_data.series.add(wb.get_cell(0, 0, 4, "Close"), chart.type)

    # Add data points
    series = chart.chart_data.series[0]

    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 1, 72))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 1, 25))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 1, 38))

    series = chart.chart_data.series[1]
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 2, 172))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 2, 57))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 2, 57))

    series = chart.chart_data.series[2]
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 3, 12))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 3, 12))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 3, 13))

    series = chart.chart_data.series[3]
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 4, 25))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 4, 38))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 4, 50))

    chart.chart_data.series_groups[0].up_down_bars.has_up_down_bars = True
    chart.chart_data.series_groups[0].hi_low_lines_format.line.fill_format.fill_type = slides.FillType.SOLID

    # Set series fill formatting
    for ser in chart.chart_data.series:
        ser.format.line.fill_format.fill_type = slides.FillType.NO_FILL

    # Save presentation
    pres.save("stock-chart.pptx", slides.export.SaveFormat.PPTX)

La siguiente es la captura de pantalla del gráfico de acciones creado.

crear un gráfico de cotizaciones en powerpoint en Python

Más sobre Gráficos

Hay muchos otros gráficos que puede agregar a las presentaciones de PowerPoint usando Aspose.Slides for Python. Para obtener más información sobre los tipos de gráficos admitidos, puede visitar este artículo de documentación.

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a crear gráficos en PowerPoint PPT o PPTX en Python. Hemos repasado los pasos y ejemplos de código de cómo agregar gráficos de columnas, gráficos de dispersión, gráficos circulares, histogramas y gráficos de cotizaciones. Puede explorar más sobre Aspose.Slides for Python usando documentación. En caso de que tenga alguna pregunta o consulta, háganoslo saber a través de nuestro foro.

Ver también