Замена данных в определенной круговой диаграмме библиотекой python-pptx вызывает ошибку.Однако замена данных в другой круговой диаграмме на том же слайде не вызывает проблем.
Если я заменю данные только на второй круговой диаграмме (с которой я столкнулся при ошибках при изменении), у меня все равно будет та же проблема.Нет никаких причин, почему он должен это делать, насколько я знаю, поскольку данные, которые я пытаюсь вставить в него, - это те же данные, которые уже были там.Я на Windows 10 Enterprise (Версия 10.0.15063 Build 15063) под управлением python3.7.3 и последней версии python-pptx.
Замена данных на первой круговой диаграмме работает нормально, поэтому я нене знаю, в чем проблема.Они оба находятся на одном слайде.
chart = slide.shapes[-2].chart
chart_data = ChartData()
ctg = []
for i in mcdata:
ctg.append(i+" - "+str(mcdata[i]))
chart_data.categories = tuple(ctg)
chart_data.add_series("",tuple([float(mcdata[i]) for i in mcdata]))
chart.replace_data(chart_data)
mcdata - это словарь, который выглядит следующим образом:
{"total": 268788, "rejected": 13103, "Virus Signature Detection": 416, "Anti-Spoofing Header Lockout": 66, "Anti-Spoofing Lockout": 470}
На круговой диаграмме, в которой я хочу заменить данные, chart.plots[0].categories
выглядит так:
{"Virus Signature Detection":416, "Anti-Spoofing Header Lockout": 66 ...}
и т. д.
chart.series[0].values
выглядит так:
(416.0, 66.0, ...)
и т. д.
Когда я открываю презентацию,Я получаю сообщение об ошибке «PowerPoint обнаружил проблему с содержимым в out.pptx. PowerPoint может попытаться восстановить презентацию. Если вы доверяете источнику презентации, нажмите« Восстановить ».»
Когда я нажимаю кнопку «Восстановить», появляется другое сообщение: «PowerPoint не может прочитать какой-либо контент в out.pptx [Восстановлено] и удалил его. Пожалуйста, проверьте свою презентацию, чтобы увидеть, все ли выглядит нормально».И весь слайд пуст.