Оптимизация вычислений диаграмм для презентаций на 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; их параметры автоматически пересчитываются на основе данных серий, поэтому вам не нужно реализовывать собственные расчёты.
Если презентация содержит несколько диаграмм со внешними ссылками, могу ли я управлять тем, какую книгу каждая диаграмма использует для вычисляемых значений?
Да. Каждая диаграмма может указывать на свою собственную внешнюю книгу, или вы можете создавать/заменять внешнюю книгу для каждой диаграммы независимо от остальных.