如何在 python-pptx 中 change/add 图表数据系列?
How to change/add chart data series in python-pptx?
我正在尝试使用 python-pptx 在现有图表中设置数据。
from pptx import Presentation
pres_path = "C:\pres.pptx"
pres = Presentation(pres_path)
pres.slides[3].shapes[4].chart.series[0].values
(92.0, 330.0, 309.0, 313.0, 356.0, 421.0, 457.0)
pres.slides[3].shapes[4].chart.series[0].values = (1,2,3)
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: can't set attribute
文档中提到的一种方法似乎相关,但我不明白如何使用它:
http://python-pptx.readthedocs.org/en/latest/_modules/pptx/chart/data.html
pres.slides[3].shapes[4].chart.replace_data((1,2,3))
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Python27\lib\site-packages\pptx\chart\chart.py", line 119, in replace_data
_SeriesRewriter.replace_series_data(self._chartSpace, chart_data)
File "C:\Python27\lib\site-packages\pptx\chart\chart.py", line 197, in replace_series_data
sers = cls._adjust_ser_count(chartSpace, len(chart_data.series))
AttributeError: 'tuple' object has no attribute 'series'
如果您能提供任何帮助,我将不胜感激。
谢谢!
要在图表后面的现有 table 中添加新系列,您需要做 3 件事:
- 创建 ChartData() 实例
- 提供类别名称
使用 "add_series()" 函数将新系列添加到 ChartData() 对象。
chart_data = ChartData()
chart_data.categories = 'category_name'
for col_idx, col in enumerate(single_df.columns):
chart_data.add_series(col, (single_df.ix[:, col_idx].values))
shp.chart.replace_data(chart_data)
我正在尝试使用 python-pptx 在现有图表中设置数据。
from pptx import Presentation
pres_path = "C:\pres.pptx"
pres = Presentation(pres_path)
pres.slides[3].shapes[4].chart.series[0].values
(92.0, 330.0, 309.0, 313.0, 356.0, 421.0, 457.0)
pres.slides[3].shapes[4].chart.series[0].values = (1,2,3)
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: can't set attribute
文档中提到的一种方法似乎相关,但我不明白如何使用它: http://python-pptx.readthedocs.org/en/latest/_modules/pptx/chart/data.html
pres.slides[3].shapes[4].chart.replace_data((1,2,3))
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Python27\lib\site-packages\pptx\chart\chart.py", line 119, in replace_data
_SeriesRewriter.replace_series_data(self._chartSpace, chart_data)
File "C:\Python27\lib\site-packages\pptx\chart\chart.py", line 197, in replace_series_data
sers = cls._adjust_ser_count(chartSpace, len(chart_data.series))
AttributeError: 'tuple' object has no attribute 'series'
如果您能提供任何帮助,我将不胜感激。 谢谢!
要在图表后面的现有 table 中添加新系列,您需要做 3 件事:
- 创建 ChartData() 实例
- 提供类别名称
使用 "add_series()" 函数将新系列添加到 ChartData() 对象。
chart_data = ChartData() chart_data.categories = 'category_name' for col_idx, col in enumerate(single_df.columns): chart_data.add_series(col, (single_df.ix[:, col_idx].values)) shp.chart.replace_data(chart_data)