为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 python-pptx 替换现有折线图的数据?

如何使用 python-pptx 替换现有折线图的数据?

幕布斯6054654 2022-04-27 15:57:08
我有一个预先构建和填充的 powerpoint 演示文稿,我正在修改图表和表格的数据。我想保留所有格式(和大部分文本),但替换幻灯片中折线图中的数据。我有一个函数将使用与条形图一起使用的 pandas 数据框替换数据。def replaceCategoryChart(df, chart, skipLastCol=0):    """    Replaces Category chartdata for a simple series chart. e.g. Nonfarm Employment    Parameters:    df: dataframe containing new data. column 0 is the categories    chart: the powerpoint shape chart.    skipLast: 0=don't skip last column, 1+ will skip that many columns from the end    Returns: replaced chart(?)    """    cols1= list(df)    #print(cols1)    #create chart data object    chart_data = CategoryChartData()    #create categories    chart_data.categories=df[cols1[0]]    # Loop over all series    for col in cols1[1:-skipLastCol]:        chart_data.add_series(col, df[col])    #replace chart data    chart.replace_data(chart_data)...S0_L=  pd.read_excel(EXCEL_BOOK, sheet_name="S0_L", usecols="A:F")S0_L_chart = prs.slides[0].shapes[3].chartprint(S0_L)replaceCategoryChart(S0_L, S0_L_chart)...python 文件成功运行,但是,当我打开 powerpoint 文件时出现错误Powerpoint found a problem with content in Name.pptx. Powerpoint can attempt to repair the presentation.If you trust the source of this presentation, click Repair.点击修复后,我试图修改的幻灯片被空白布局替换。因为此函数适用于条形图,所以我认为我理解如何将 replace_data() 用于折线图的方式存在错误。感谢您的帮助!
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

如果您的“折线图”是“XY 散点图”图表,您将需要不同的图表数据对象、XyChartData对象,然后填充其XySeries对象:https ://python-pptx.readthedocs.io/en/latest/ api/chart-data.html#pptx.chart.data.XyChartData

我建议首先使用文字值(例如“South”和 )使其工作1.05,然后继续提供来自 Pandas 数据帧的值。这样你就可以确定python-pptx你的代码部分结构正确,并且你会知道去哪里寻找出现的任何问题。


查看完整回答
反对 回复 2022-04-27
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

正如scanny 提到的,replace_data() 确实适用于类别折线图。


修复错误(可能)是由错误地添加系列数据引起的,(有一个坏循环,在下面更正)。


    # Loop over all series

    for col in cols1[1:len(cols1)-skipLastCol]:

        print('Type of column is ' + str(type(col)))

        chart_data.add_series(col, df[col])


查看完整回答
反对 回复 2022-04-27
  • 2 回答
  • 0 关注
  • 782 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信