Criar gráficos em apresentações do PowerPoint em Python

Os gráficos são utilizados para a representação gráfica dos dados, o que facilita a análise. Portanto, o MS PowerPoint oferece suporte a uma variedade de gráficos para visualizar os dados de diferentes maneiras. Dentre todos, os gráficos mais usados incluem gráficos de pizza, gráficos de linhas, gráficos de barras, histogramas, gráficos de ações, etc. Neste artigo, você aprenderá como criar esses gráficos em PowerPoint PPT ou PPTX em Python.

Biblioteca Python para criar gráficos no PowerPoint PPT

Para criar gráficos em PowerPoint PPT/PPTX, usaremos Aspose.Slides for Python via .NET. É uma biblioteca rica em recursos que fornece um pacote completo para criar e manipular apresentações em PowerPoint. Você pode instalá-lo de PyPI usando o seguinte comando pip.

> pip install aspose.slides

Aspose.Slides suporta uma variedade de gráficos que podem ser adicionados às apresentações dinamicamente. Nas seções a seguir, demonstraremos como criar alguns tipos populares de gráficos.

Criar gráfico de colunas no PowerPoint PPT em Python

Nesta seção, você aprenderá como criar um gráfico de colunas em uma apresentação do PowerPoint em Python. A seguir estão as etapas para realizar esta operação.

  • Primeiro, crie uma instância da classe Presentation.
  • Obtenha a referência do slide de Presentations.slides em um objeto.
  • Adicione um gráfico de colunas agrupadas com dados padrão usando o método Slide.shapes.addchart().
  • Defina o título do gráfico e outras propriedades, como formatação de texto.
  • Acesse a pasta de trabalho de dados do gráfico em um objeto usando o método Chart.chartdata.chartdataworkbook().
  • Limpe todas as séries e categorias padrão dos dados do gráfico usando os métodos Chart.chartdata.series.clear() e Chart.chartdata.categories.clear() respectivamente.
  • Adicione novas séries e categorias.
  • Acesse cada série do gráfico em um objeto e adicione pontos de dados a ele.
  • Adicione cor de preenchimento para séries de gráficos e defina rótulos.
  • Finalmente, salve a apresentação usando o método Presentation.save(string, SaveFormat).

O exemplo de código a seguir mostra como criar um gráfico de colunas no PowerPoint PPT em Python.

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

# Criar apresentação (ou carregar uma existente) 
with slides.Presentation() as pres:

    # Acesse o primeiro slide
    sld = pres.slides[0]

    # Adicionar gráfico com dados padrão
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # Definir título do gráfico
    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

    # Defina a primeira série para mostrar valores
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Definir o índice da folha de dados do gráfico
    defaultWorksheetIndex = 0

    # Obtenha a planilha de dados do gráfico
    fact = chart.chart_data.chart_data_workbook

    # Excluir séries e categorias geradas padrão
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # Adicionar nova série
    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)

    # Adicionar novas categorias
    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"))

    # Pegue a primeira série de gráficos
    series = chart.chart_data.series[0]

    # Preencher dados da série
    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))

    # Definir cor de preenchimento para série
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.blue

    # Pegue a segunda série de gráficos
    series = chart.chart_data.series[1]

    # Preencher dados da série
    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))

    # Definir cor de preenchimento para série
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # A primeira etiqueta mostrará o nome da categoria
    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

    # Mostrar valor para o terceiro rótulo
    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 = "/"

    # Salvar apresentação
    pres.save("column-chart.pptx", slides.export.SaveFormat.PPTX)

A seguir está a captura de tela do gráfico de colunas resultante.

criar gráfico de colunas no powerpoint em Python

Criar gráfico de dispersão no PowerPoint PPT em Python

A seguir estão as etapas para criar um gráfico de dispersão no PowerPoint PPT em Python.

  • Primeiro, crie uma instância da classe Presentation.
  • Obtenha a referência do slide de Presentations.slides em um objeto.
  • Adicione um gráfico de dispersão com dados padrão usando o método Slide.shapes.addchart().
  • Acesse a pasta de trabalho de dados do gráfico em um objeto usando o método Chart.chartdata.chartdataworkbook().
  • Adicione uma nova série aos dados do gráfico.
  • Acesse cada série em um objeto e adicione pontos de dados à série.
  • Defina o marcador para a série.
  • Finalmente, salve a apresentação usando o método Presentation.save(string, SaveFormat).

O exemplo de código a seguir mostra como criar um gráfico de dispersão no PowerPoint PPTX em Python.

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

# Criar apresentação (ou carregar uma existente) 
with slides.Presentation() as pres:

    # Acesse o primeiro slide    
    slide = pres.slides[0]

    # Criar o gráfico padrão
    chart = slide.shapes.add_chart(slides.charts.ChartType.SCATTER_WITH_SMOOTH_LINES, 0, 0, 400, 400)

    # Obtenha o índice da planilha de dados do gráfico padrão
    defaultWorksheetIndex = 0

    # Obtenha a planilha de dados do gráfico
    fact = chart.chart_data.chart_data_workbook

    # Excluir série de demonstração
    chart.chart_data.series.clear()

    # Adicionar nova série
    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)

    # Faça a primeira série de gráficos
    series = chart.chart_data.series[0]

    # Adicionar novo ponto (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))

    # Adicionar novo ponto (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))

    # Editar o tipo de série
    series.type = slides.charts.ChartType.SCATTER_WITH_STRAIGHT_LINES_AND_MARKERS

    # Alterar o marcador da série do gráfico
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.STAR

    # Pegue a segunda série de gráficos
    series = chart.chart_data.series[1]

    # Adicionar novo ponto (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))

    # Adicionar novo ponto (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))

    # Adicionar novo ponto (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))

    # Adicionar novo ponto (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))

    # Alterar o marcador da série do gráfico
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.CIRCLE

    # Salvar apresentação
    pres.save("scatter-chart.pptx", slides.export.SaveFormat.PPTX)

A captura de tela a seguir mostra o gráfico de dispersão resultante.

criar gráfico de dispersão no powerpoint em Python

Criar gráfico de pizza no PowerPoint PPT em Python

A seguir estão as etapas para criar um gráfico de pizza em um PowerPoint PPT em Python.

  • Primeiro, crie uma instância da classe Presentation.
  • Obtenha a referência do slide de Presentations.slides em um objeto.
  • Adicione um gráfico de pizza com dados padrão usando o método Slide.shapes.addchart().
  • Defina o título do gráfico e outras propriedades, como formatação de texto.
  • Defina a visibilidade dos valores.
  • Limpe todas as séries e categorias padrão dos dados do gráfico usando os métodos Chart.chartdata.series.clear() e Chart.chartdata.categories.clear() respectivamente.
  • Acesse a pasta de trabalho de dados do gráfico em um objeto usando o método Chart.chartdata.chartdataworkbook().
  • Adicione novas categorias aos dados do gráfico.
  • Adicione uma nova série aos dados do gráfico.
  • Acesse cada série em um objeto e adicione pontos de dados à série.
  • Acesse cada ponto de dados e defina sua formatação.
  • Aplique formatação aos rótulos de dados nos pontos de dados.
  • Defina as linhas principais e os ângulos de rotação.
  • Finalmente, salve a apresentação usando o método Presentation.save(string, SaveFormat).

O exemplo de código a seguir mostra como criar um gráfico de pizza no PowerPoint PPTX em Python.

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

# Criar apresentação (ou carregar uma existente) 
with slides.Presentation() as presentation:

    # Acesse o primeiro slide
    slide = presentation.slides[0]

    # Adicionar gráfico com dados padrão
    chart = slide.shapes.add_chart(slides.charts.ChartType.PIE, 100, 100, 400, 400)

    # Definir título do gráfico
    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

    # Defina a primeira série para mostrar valores
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Definir o índice da folha de dados do gráfico
    defaultWorksheetIndex = 0

    # Obtenha a planilha de dados do gráfico
    fact = chart.chart_data.chart_data_workbook

    # Excluir séries e categorias geradas padrão
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Adicionar novas categorias
    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"))

    # Adicionar nova série
    series = chart.chart_data.series.add(fact.get_cell(0, 0, 1, "Series 1"), chart.type)

    # Preencher dados da série
    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))

    # Adicione novos pontos e defina a cor do setor
    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

    # Definir borda do setor
    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

    # Definir borda do setor
    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

    # Definir borda do setor
    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

    # Crie rótulos personalizados para cada uma das categorias para novas séries
    lbl1 = series.data_points[0].label

    # lbl.show_category_name = Verdadeiro
    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

    # Mostrar linhas de chamada para o gráfico
    # series.labels.default_data_label_format.show_leader_lines = Verdadeiro

    # Definir o ângulo de rotação para setores do gráfico de pizza
    chart.chart_data.series_groups[0].first_slice_angle = 180

    # Salvar apresentação
    presentation.save("pie-chart.pptx", slides.export.SaveFormat.PPTX)

A seguir está a captura de tela do gráfico de pizza gerado.

criar gráfico de pizza no powerpoint em Python

Adicionar gráfico de histograma no PowerPoint PPTX em Python

A seguir estão as etapas para criar um gráfico de histograma no PowerPoint PPT usando Aspose.Slides para Python.

  • Primeiro, crie uma instância da classe Presentation.
  • Obtenha a referência do slide de Presentations.slides em um objeto.
  • Adicione um gráfico de histograma com dados padrão usando o método Slide.shapes.addchart().
  • Limpe as séries e categorias padrão.
  • Acesse a pasta de trabalho de dados do gráfico em um objeto usando o método Chart.chartdata.chartdataworkbook().
  • Adicione uma nova série aos dados do gráfico.
  • Acesse cada série em um objeto e adicione pontos de dados à série.
  • Defina o tipo de agregação do eixo do gráfico.
  • Finalmente, salve a apresentação usando o método Presentation.save(string, SaveFormat).

O exemplo de código a seguir mostra como criar um gráfico de histograma em PPTX em Python.

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

# Criar apresentação (ou carregar uma existente) 
with slides.Presentation() as pres:

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

    # Limpar categorias e séries padrão
    chart.chart_data.categories.clear()
    chart.chart_data.series.clear()

    # Acessar pasta de trabalho
    wb = chart.chart_data.chart_data_workbook

    wb.clear(0)

    # Adicionar pontos de dados à série
    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))

    # Definir tipo de agregação
    chart.axes.horizontal_axis.aggregation_type = slides.charts.AxisAggregationType.AUTOMATIC

    # Salvar apresentação
    pres.save("histogram-chart.pptx", slides.export.SaveFormat.PPTX)

A seguir está a captura de tela do gráfico de histograma criado.

criar gráfico de histograma no powerpoint em Python

Criar um gráfico de ações no PowerPoint usando Python

Os gráficos de ações também estão entre os tipos de gráficos comumente usados em apresentações do PowerPoint. A seguir estão as etapas para criar um gráfico de ações em um PPT em Python.

  • Primeiro, crie uma instância da classe Presentation.
  • Obtenha a referência do slide de Presentations.slides em um objeto.
  • Adicione um gráfico Open High Low Close com dados padrão usando o método Slide.shapes.addchart().
  • Limpe as séries e categorias padrão.
  • Acesse a pasta de trabalho de dados do gráfico em um objeto usando o método Chart.chartdata.chartdataworkbook().
  • Adicione novas séries e categorias ao gráfico.
  • Acesse cada série do gráfico e adicione pontos de dados.
  • Especifique o formato Hi Low Lines.
  • Finalmente, salve a apresentação usando o método Presentation.save(string, SaveFormat).

O exemplo de código a seguir mostra como adicionar um gráfico de ações ao PowerPoint PPTX em Python.

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

# Criar apresentação (ou carregar uma existente) 
with slides.Presentation() as pres:

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

    # Limpar séries e categorias padrão
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Acessar pasta de trabalho
    wb = chart.chart_data.chart_data_workbook

    # Adicionar categorias
    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"))

    # Adicionar série
    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)

    # Adicionar pontos de dados
    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

    # Definir formatação de preenchimento de série
    for ser in chart.chart_data.series:
        ser.format.line.fill_format.fill_type = slides.FillType.NO_FILL

    # Salvar apresentação
    pres.save("stock-chart.pptx", slides.export.SaveFormat.PPTX)

A seguir está a captura de tela do gráfico de ações criado.

criar gráfico de ações no powerpoint em Python

Mais sobre gráficos

Existem muitos outros gráficos que você pode adicionar às apresentações do PowerPoint usando o Aspose.Slides for Python. Para ler mais sobre os tipos de gráficos suportados, você pode visitar este artigo de documentação.

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como criar gráficos no PowerPoint PPT ou PPTX em Python. Passamos pelas etapas e exemplos de código de como adicionar gráficos de colunas, gráficos de dispersão, gráficos de pizza, histogramas e gráficos de ações. Você pode explorar mais sobre o Aspose.Slides for Python usando documentação. Caso você tenha alguma dúvida ou pergunta, informe-nos através do nosso fórum.

Veja também