Оптимизация вычислений диаграмм для презентаций на Python

Вычисление фактических значений элементов диаграммы

Aspose.Slides for Python via .NET предоставляет простой API для получения этих свойств. Это поможет вам вычислять фактические значения элементов диаграммы. Фактические значения включают положение элементов, наследующих класс IActualLayout (IActualLayout.ActualX, IActualLayout.ActualY, IActualLayout.ActualWidth, IActualLayout.ActualHeight) и фактические значения осей (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

Вычисление фактической позиции родительских элементов диаграммы

Aspose.Slides for Python via .NET предоставляет простой API для получения этих свойств. Свойства IActualLayout предоставляют информацию о фактической позиции родительского элемента диаграммы. Необходимо предварительно вызвать метод IChart.ValidateChartLayout(), чтобы заполнить свойства фактическими значениями.

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

Скрытие информации на диаграмме

Эта тема поможет вам понять, как скрыть информацию на диаграмме. С помощью Aspose.Slides for Python via .NET вы можете скрыть Заголовок, Вертикальная ось, Горизонтальная ось и Линии сетки на диаграмме. Ниже приведён пример кода, показывающий, как использовать эти свойства.

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)

    # Скрытие заголовка диаграммы
    chart.has_title = False

    # Скрытие оси значений
    chart.axes.vertical_axis.is_visible = False

    # Видимость категориальной оси
    chart.axes.horizontal_axis.is_visible = False

    # Скрытие легенды
    chart.has_legend = False

    # Скрытие основных линий сетки
    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

    # Установка цвета линии серии
    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)

FAQ

Работают ли внешние книги Excel в качестве источника данных и как это влияет на пересчёт?

Да. Диаграмма может ссылаться на внешнюю книгу: при подключении или обновлении внешнего источника формулы и значения берутся из этой книги, и диаграмма отражает изменения во время операций открытия/редактирования. API позволяет вам указать путь к внешней книге и управлять связанными данными.

Могу ли я вычислять и отображать линии тренда без самостоятельной реализации регрессии?

Да. Линии тренда (линейные, экспоненциальные и другие) добавляются и обновляются Aspose.Slides; их параметры автоматически пересчитываются на основе данных серий, поэтому вам не нужно реализовывать собственные расчёты.

Если презентация содержит несколько диаграмм со внешними ссылками, могу ли я управлять тем, какую книгу каждая диаграмма использует для вычисляемых значений?

Да. Каждая диаграмма может указывать на свою собственную внешнюю книгу, или вы можете создавать/заменять внешнюю книгу для каждой диаграммы независимо от остальных.