как добавить метку xaxis и yaxis с помощью python -pptx - PullRequest
1 голос
/ 29 мая 2020

Я изучаю python -pptx. У меня есть простой пример ниже, который генерирует линейную диаграмму и работает нормально. Как я могу добавить метку оси X, т.е. «Кварталы», и метку оси Y в качестве «Продажи» на этот график?

from pptx import Presentation
from pptx.util import Inches
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE

# create presentation with 1 slide ------
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5])

# define chart data ---------------------
chart_data = ChartData()
chart_data.categories = ['Q1 Sales', 'Q2 Sales', 'Q3 Sales']
chart_data.add_series('West',    (32.2, 28.4, 34.7))
chart_data.add_series('East',    (24.3, 30.6, 20.2))
chart_data.add_series('Midwest', (20.4, 18.3, 26.2))

x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)
chart = slide.shapes.add_chart(
    XL_CHART_TYPE.LINE, x, y, cx, cy, chart_data
).chart

chart.has_legend = True
chart.legend.include_in_layout = False
chart.series[0].smooth = True
prs.save('test1.pptx')

1 Ответ

1 голос
/ 29 мая 2020

Такая метка известна как заголовок оси на языке PowerPoint.

Вы можете получить доступ к объекту заголовка оси для оси с помощью свойства axis.axis_title, описанного в документации здесь :
https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx .chart.axis._BaseAxis.axis_title

Итак, что-то вроде этого должно помочь в вашем случае:

category_axis_title = chart.category_axis.axis_title
category_axis_title.text_frame.text = "Quarter"
value_axis_title = chart.value_axis.axis_title
value_axis_title.text_frame.text = "Sales"

Между Объект TextFrame и объект ChartFormat, связанный с заголовком оси, вы можете контролировать цвет, размер, шрифт и т. Д. c. текста заголовка оси.

...