Настройка областей построения диаграмм презентаций в Python
Получить ширину и высоту области построения диаграммы
Aspose.Slides for Python via .NET предоставляет простой API для .
- Создайте экземпляр класса Presentation .
- Получите доступ к первому слайду.
- Добавьте диаграмму с данными по умолчанию.
- Вызовите метод IChart.ValidateChartLayout() перед получением фактических значений.
- Получает фактическое положение X (слева) элемента диаграммы относительно левого верхнего угла диаграммы.
- Получает фактическую верхнюю позицию элемента диаграммы относительно левого верхнего угла диаграммы.
- Получает фактическую ширину элемента диаграммы.
- Получает фактическую высоту элемента диаграммы.
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() 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
# Сохранить презентацию с диаграммой
pres.save("Chart_out.pptx", slides.export.SaveFormat.PPTX)
Установить режим макета области построения диаграммы
Aspose.Slides for Python via .NET предоставляет простой API для установки режима макета области построения диаграммы. Свойство LayoutTargetType было добавлено в классы ChartPlotArea и IChartPlotArea. Если макет области построения определяется вручную, это свойство указывает, располагать область построения по её внутренней части (не включая оси и подписи осей) или по внешней части (включая оси и подписи осей). Существует два возможных значения, определённых в перечислении LayoutTargetType.
- LayoutTargetType.Inner - указывает, что размер области построения определяется внутренней частью области, без отметок осей и подписей осей.
- LayoutTargetType.Outer - указывает, что размер области построения определяется внешней частью области, включая отметки осей и подписи осей.
Пример кода приведён ниже.
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 100, 600, 400)
chart.plot_area.as_i_layoutable.x = 0.2
chart.plot_area.as_i_layoutable.y = 0.2
chart.plot_area.as_i_layoutable.width = 0.7
chart.plot_area.as_i_layoutable.height = 0.7
chart.plot_area.layout_target_type = charts.LayoutTargetType.INNER
presentation.save("SetLayoutMode_outer.pptx", slides.export.SaveFormat.PPTX)
FAQ
В каких единицах возвращаются actual_x, actual_y, actual_width и actual_height?
В пунктах; 1 дюйм = 72 пункта. Это единицы координат Aspose.Slides.
Чем область построения отличается от области диаграммы по содержанию?
Область построения — это регион рисования данных (серии, сетка, тренд‑линии и т.д.); область диаграммы включает окружающие элементы (заголовок, легенду и т.п.). В 3D‑диаграммах область построения также включает стены/пол и оси.
Как интерпретируются X, Y, ширина и высота области построения при ручном макете?
Это доли (0–1) от общего размера диаграммы; в этом режиме автоматическое позиционирование отключено, и используются указанные вами доли.
Почему позиция области построения изменилась после добавления/перемещения легенды?
Легенда размещается в области диаграммы вне области построения, но влияет на макет и доступное пространство, поэтому при включённом автоматическом позиционировании область построения может сместиться. (Это стандартное поведение диаграмм PowerPoint.)