如何在 python-pptx 中为 xyscatter 图表设置图表的字体大小、轴值和轴标题
How to set font size of chart,axis values and axis titles in python-pptx for xyscatter chart
我有一个非常简单的 xy 图表,是我用 python-pptx 制作的(感谢所有来自 stack overflows 的帮助我的人)。我正在努力设置 XTitle、YTitle、ChartTitle、系列名称的字体大小以及 x 任何轴上的值,如 (0 20 40 60)。 pptx 文档对我来说不是很清楚
from pptx import Presentation
from pptx.util import Inches,Pt
from pptx.enum.chart import XL_CHART_TYPE
from pptx.chart.data import XySeriesData,XyChartData
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(title_slide_layout)
slide2 = prs.slides.add_slide(blank_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Hello, World!"
subtitle.text = "python-pptx was here!"
chart_data = XyChartData()
cd = chart_data.add_series('Series Name',number_format=None)
cxvalues=[0,1,2,3,4,5]
cyvalues=[10,22,33,38,40,43]
for x, y in list(zip(cxvalues, cyvalues)):
cd.add_data_point(x, y, number_format=None)
x, y, cx, cy = Inches(1), Inches(2), Inches(8), Inches(3)
chart = slide2.shapes.add_chart(XL_CHART_TYPE.XY_SCATTER_LINES_NO_MARKERS, x, y, cx, cy, chart_data).chart
chart.category_axis.axis_title.text_frame.text= "XTitle"
chart.value_axis.axis_title.text_frame.text= "YTitle"
chart.chart_title.text_frame.text='ChartTitle'
prs.save('test_template.pptx')
尝试在轴和图表标题的第一段上使用 Font
object:
from pptx.util import Pt
chart.chart_title.text_frame.paragraphs[0].font.size = Pt(36)
chart.category_axis.axis_title.text_frame.paragraphs[0].font.size = Pt(24)
chart.value_axis.axis_title.text_frame.paragraphs[0].font.size = Pt(24)
这几乎就是您在任何其他 text-frame 中格式化文本的方式,尽管我相信在这些标题 object 的情况下只有一个段落。
我有一个非常简单的 xy 图表,是我用 python-pptx 制作的(感谢所有来自 stack overflows 的帮助我的人)。我正在努力设置 XTitle、YTitle、ChartTitle、系列名称的字体大小以及 x 任何轴上的值,如 (0 20 40 60)。 pptx 文档对我来说不是很清楚
from pptx import Presentation
from pptx.util import Inches,Pt
from pptx.enum.chart import XL_CHART_TYPE
from pptx.chart.data import XySeriesData,XyChartData
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(title_slide_layout)
slide2 = prs.slides.add_slide(blank_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Hello, World!"
subtitle.text = "python-pptx was here!"
chart_data = XyChartData()
cd = chart_data.add_series('Series Name',number_format=None)
cxvalues=[0,1,2,3,4,5]
cyvalues=[10,22,33,38,40,43]
for x, y in list(zip(cxvalues, cyvalues)):
cd.add_data_point(x, y, number_format=None)
x, y, cx, cy = Inches(1), Inches(2), Inches(8), Inches(3)
chart = slide2.shapes.add_chart(XL_CHART_TYPE.XY_SCATTER_LINES_NO_MARKERS, x, y, cx, cy, chart_data).chart
chart.category_axis.axis_title.text_frame.text= "XTitle"
chart.value_axis.axis_title.text_frame.text= "YTitle"
chart.chart_title.text_frame.text='ChartTitle'
prs.save('test_template.pptx')
尝试在轴和图表标题的第一段上使用 Font
object:
from pptx.util import Pt
chart.chart_title.text_frame.paragraphs[0].font.size = Pt(36)
chart.category_axis.axis_title.text_frame.paragraphs[0].font.size = Pt(24)
chart.value_axis.axis_title.text_frame.paragraphs[0].font.size = Pt(24)
这几乎就是您在任何其他 text-frame 中格式化文本的方式,尽管我相信在这些标题 object 的情况下只有一个段落。