Я пишу код для выполнения следующих действий:
- Цикл по фрейму данных ("question_data")
- Извлечение значений, соответствующих определенным критериям ("categoryvalue")
- Добавьте эти значения в списки («значения категорий»), а затем
- Используйте эти списки в качестве значений ряда для столбчатой диаграммы с накоплением, используя библиотеку python-pptx. На этом этапе я бы хотел, чтобы все элементы были сгруппированы в гистограмму по значению их категории («questionresponse»).
Я успешно разработал 1 - 3, но не могу заставить 4 работатьпо мере необходимости;вместо группировки списков с одинаковыми значениями категорий (переменная «questionresponse») диаграмма добавляет ряды к новым безымянным столбцам, как показано здесь:
Какможно ли принудительно добавить ряды в категорию в столбчатой диаграмме на основе их значения «questionresponse»?
Примечание к коду ниже: question_data - это кадр данных, извлеченный из листа Excel. Его точные поля и данные не имеют значения для этого вопроса.
chart_data = CategoryChartData()
chart_data.categories = testweek_list
categoryvalues = []
for questionresponse in questionresponse_list:
for test_week in testweek_list:
categoryvalue = question_data.loc[(question_data['Test Week'] == test_week) & (question_data['Response Option'] == questionresponse), 'Count'].values.astype(int)
if (categoryvalue != 0) and (categoryvalue != ""):
categoryvalues.append(int(categoryvalue))
chart_data.add_series(questionresponse, categoryvalues)
x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)
questionslide.shapes.add_chart(XL_CHART_TYPE.COLUMN_STACKED_100, x, y, cx, cy, chart_data)
i+=1
Ниже приведен пример желаемого результата (игнорируйте значения на графике, показанные только в иллюстративных целях):