Замена данных круговой диаграммы вызывает повреждение - PullRequest
2 голосов
/ 01 июля 2019

Замена данных в определенной круговой диаграмме библиотекой 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 [Восстановлено] и удалил его. Пожалуйста, проверьте свою презентацию, чтобы увидеть, все ли выглядит нормально».И весь слайд пуст.

...