首页 > 解决方案 > Python-pptx:更新或更改现有图表数据

问题描述

我打开一个 pptx 文件并想更改图表数据集。我怎样才能做到这一点?

prs = Presentation("mypresentation.pptx")
chart = prs.slides[0].shapes[2].chart

我从幻灯片中得到了上面的图表。我不想改变图表的样式或任何东西。想保持原样。只想更改数据集值。我怎样才能做到这一点?

标签: python-pptx

解决方案


python-pptx使用该Chart.replace_data()方法可以更改提供在 PowerPoint 图表中显示的值的数据。
https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.chart.Chart.replace_data

创建一个新ChartData对象来保存新数据,然后将该对象传递给.replace_data()方法:

from pptx.chart.data import CategoryChartData

# ---define new chart data---
chart_data = CategoryChartData()
chart_data.categories = ['East', 'West', 'Midwest']
chart_data.add_series('Series 1', (19.2, 21.4, 16.7))

# ---replace chart data---
chart.replace_data(chart_data)

请注意,对于 XY/散点图或气泡图,此过程略有不同,因为这些图表类型使用不同的图表数据对象。


推荐阅读