Я тоже работаю над этим сегодня - похоже, вы пропустили несколько шагов.
Убедитесь, что у вас есть правильный импорт, который включает:
from pptx.chart.data import XySeriesData, XyChartData
Измените эту строку:
chart_data = XySeriesData
, чтобы создать экземпляр класса XyChartData:
chart_data = XyChartData()
, тогда вам нужно добавить серию (которая создает объект XySeries), дать ему имя и числовой формат (я использую None)
chart_data.add_series('name_of_series', number_format= None)
THEN
chart_data.x_values=[0,1,2,3,4,5]
chart_data.y_values=[10,22,33,38,40,43]
Я не совсем уверен, решит ли это вашу проблему, но надеюсь, что это поможет. Сегодня я смог заменить данные на диаграмме рассеяния.
EDIT:
Установка значений x_values и y_values для объекта chart_data была непоследовательной и ненадежной. В приведенном ниже примере укажите в списках numeri c имена переменных. Для ясности я использую x_values_list и y_values_list.
Новый метод:
Сохраните объект add_series в переменную и добавьте точки данных x и y по отдельности.
chart_data = XyChartData()
cd = chart_data.add_series('name_of_series', number_format= None)
for x, y in list(zip(x_values_list, y_values_list)):
cd.add_data_point(x, y, number_format=None)
На этом этапе chart_data содержит объект серии и может быть вставлен в фигуру диаграммы, а cd представляет объект XySeries. Я думаю, что x_values и y_values предназначены скорее как средства доступа, чем как писатели, возможно? Мне не удалось установить эти значения на уровне XySeries. У меня было много проблем при попытке настроить свои списки на эти атрибуты на уровне XyChartData. Это работает намного лучше.