0

是否可以在 python 中创建具有多个类别的图表?例如:在此处输入图像描述

我把它复制粘贴到PowerPoint中,加载它并尝试了这个:

presentation.slides[0].shapes[0].chart.plots[0].categories.flattened_labels

它以元组格式给了我所有的标签 -->

(('Oct-2019', 'Advertiser'),('Oct-2019','25th percentile), etc ...)

如果我尝试打印:

presentation.slides[0].shapes[0].chart.plots[0].categories[i]
for i in 0 to 3

我得到了“广告商”、“第 25 个百分位”等值,但我找不到访问“2019 年 10 月”值的方法。

创建 ChartData 时,我看到我也可以 add_category,但这会将标签添加到我当前正在访问的类别(例如广告商、第 25 个百分位等),但我想添加另一个中的“2019 年 11 月”层级。

这是询问是否有人使用 python pptx 创建了多类别图表,以及他们将如何从图表数据级别执行此操作/这会是什么样子的一种迂回方式。

谢谢!

4

1 回答 1

-1
#data

pivot_digital_monthly_imp_laydown = pd.pivot_table(digital_monthly_imp_laydown, values='Original Value', index=['Year','Month'],
                    columns=['Campaign'], aggfunc=np.sum,fill_value=0,sort=False).reset_index().rename_axis(None, axis=1)
    pivot_digital_monthly_imp_laydown.Year=pivot_digital_monthly_imp_laydown.Year.astype(str)

    #inserting Impressions laydown in slide
    prs=input_ppt
    digital_monthly_imp_laydown_chart = prs.slides[3].shapes[6].chart

    digital_monthly_imp_laydown_data =CategoryChartData()
    #multilevel Categories
    cat=list(pivot_digital_monthly_imp_laydown['Year'])
    subcat=list(pivot_digital_monthly_imp_laydown['Month'])
    b={}
    for i,j in zip(cat,subcat):
        key=str(i)
        b.setdefault(key,[])
        b[key].append(j)
    main_cat=list(b.keys())
    for i in range(len(main_cat)):
        ear=digital_monthly_imp_laydown_data.add_category(str(main_cat[i]))
        for sub in b[main_cat[i]]:
            ear.add_sub_category(str(sub))
    #add series data
    for col in pivot_digital_monthly_imp_laydown.columns[2:]:
        new = list(pivot_digital_monthly_imp_laydown[col])
        digital_monthly_imp_laydown_data.add_series(str(col),new)
        new=[]
    digital_monthly_imp_laydown_chart.replace_data(digital_monthly_imp_laydown_data)
    
    #saving
    prs.save("./Output/Sub Brand Output.pptx")
于 2021-12-20T12:50:50.420 回答