Otimizar cálculos de gráficos para apresentações em Python

Visão geral

Aspose.Slides oferece APIs para trabalhar com cálculos de gráficos e dados de layout em apresentações. Este artigo mostra como recuperar os valores reais dos elementos do gráfico, incluindo a posição e o tamanho reais dos elementos que implementam ActualLayout e os valores reais dos eixos do gráfico. Ele também explica que esses valores são preenchidos após a validação do layout do gráfico.

Além disso, o artigo demonstra como obter a posição real dos elementos pai do gráfico e como ocultar componentes do gráfico, como o título, eixos, legenda e linhas de grade. Juntos, esses exemplos ajudam a inspecionar as informações de layout do gráfico e a controlar a visibilidade dos elementos do gráfico em apresentações do PowerPoint programaticamente.

Calcular valores reais dos elementos do gráfico

Aspose.Slides for Python via .NET fornece uma API simples para obter essas propriedades. Isso ajudará a calcular os valores reais dos elementos do gráfico. Os valores reais incluem a posição dos elementos que herdam a classe IActualLayout (IActualLayout.ActualX, IActualLayout.ActualY, IActualLayout.ActualWidth, IActualLayout.ActualHeight) e os valores reais dos eixos (IAxis.ActualMaxValue, IAxis.ActualMinValue, IAxis.ActualMajorUnit, IAxis.ActualMinorUnit, IAxis.ActualMajorUnitScale, IAxis.ActualMinorUnitScale).

import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    chart = pres.slides[0].shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 100, 100, 500, 350)
    chart.validate_chart_layout()

    maxValue = chart.axes.vertical_axis.actual_max_value
    minValue = chart.axes.vertical_axis.actual_min_value
    majorUnit = chart.axes.horizontal_axis.actual_major_unit
    minorUnit = chart.axes.horizontal_axis.actual_minor_unit

Calcular posição real dos elementos pai do gráfico

Aspose.Slides for Python via .NET fornece uma API simples para obter essas propriedades. As propriedades de IActualLayout fornecem informações sobre a posição real do elemento pai do gráfico. É necessário chamar o método IChart.ValidateChartLayout() anteriormente para preencher as propriedades com valores reais.

import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    chart = pres.slides[0].shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 100, 100, 500, 350)
    chart.validate_chart_layout()

    x = chart.plot_area.actual_x
    y = chart.plot_area.actual_y
    w = chart.plot_area.actual_width
    h = chart.plot_area.actual_height

Ocultar informações do gráfico

Este tópico ajuda a entender como ocultar informações do gráfico. Usando Aspose.Slides for Python via .NET, você pode ocultar Título, Eixo Vertical, Eixo Horizontal e Linhas de Grade do gráfico. O exemplo de código abaixo mostra como usar essas propriedades.

import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation() as pres:
    slide = pres.slides[0]
    chart = slide.shapes.add_chart(charts.ChartType.LINE_WITH_MARKERS, 140, 118, 320, 370)

    # Ocultando o título do gráfico
    chart.has_title = False

    # Ocultando o eixo de valores
    chart.axes.vertical_axis.is_visible = False

    # Visibilidade do eixo de categorias
    chart.axes.horizontal_axis.is_visible = False

    # Ocultando a legenda
    chart.has_legend = False

    # Ocultando linhas principais da grade
    chart.axes.horizontal_axis.major_grid_lines_format.line.fill_format.fill_type = slides.FillType.NO_FILL

    #for i in range(len(chart.chart_data.series)):
    #    chart.chart_data.series.remove_at(i)

    series = chart.chart_data.series[0]

    series.marker.symbol = charts.MarkerStyleType.CIRCLE
    series.labels.default_data_label_format.show_value = True
    series.labels.default_data_label_format.position = charts.LegendDataLabelPosition.TOP
    series.marker.size = 15

    # Definindo a cor da linha da série
    series.format.line.fill_format.fill_type = slides.FillType.SOLID
    series.format.line.fill_format.solid_fill_color.color = draw.Color.purple
    series.format.line.dash_style = slides.LineDashStyle.SOLID

    pres.save("HideInformationFromChart.pptx", slides.export.SaveFormat.PPTX)

Perguntas frequentes

As pastas de trabalho externas do Excel funcionam como fonte de dados e como isso afeta o recálculo?

Sim. Um gráfico pode referenciar uma pasta de trabalho externa: ao conectar ou atualizar a fonte externa, fórmulas e valores são obtidos dessa pasta de trabalho, e o gráfico reflete as alterações durante as operações de abertura/edição. A API permite especificar a pasta de trabalho externa e gerenciar os dados vinculados.

Posso calcular e exibir linhas de tendência sem implementar a regressão eu mesmo?

Sim. Linhas de Tendência (linear, exponencial e outras) são adicionadas e atualizadas pelo Aspose.Slides; seus parâmetros são recalculados a partir dos dados da série automaticamente, portanto não é necessário implementar seus próprios cálculos.

Se uma apresentação contém vários gráficos com links externos, posso controlar qual pasta de trabalho cada gráfico usa para os valores calculados?

Sim. Cada gráfico pode apontar para sua própria pasta de trabalho externa, ou você pode criar/substituir uma pasta de trabalho externa por gráfico independentemente das demais.