openpyxl — ошибка типа: ожидается при вводе данных диаграммы

#python #charts #openpyxl #xlsx

#питон #Диаграммы #openpyxl #xlsx

Вопрос:

Хороший день,

Я пытаюсь создать диаграмму Excel с помощью openpyxl, но у меня возникли некоторые трудности при назначении данных диаграмме. Проблема, срезанная в программном коде, показана ниже:

 import pandas as pd from openpyxl import Workbook from openpyxl.chart import (SurfaceChart3D, Reference, Series) from openpyxl.chart.axis import SeriesAxis from os import startfile  book_name = "3DChart.xlsx"  dictionary = {} dictionary["X1"] = [8.1, 8.1, 8.1, 8.1, 8.1] dictionary["X2"] = [8, 8.1, 8.1, 8.1, 8] dictionary["X3"] = [8, 8, 8.1, 8, 8] dictionary["X4"] = [8, 8, 8, 8, 8] dictionary["X5"] = [8, 8, 8, 8, 8]  dataframe = pd.DataFrame(dictionary, index=['Y1', 'Y2', 'Y3', 'Y4', 'Y5'])  try:  with pd.ExcelWriter(book_name, mode='a', if_sheet_exists='new', engine='openpyxl') as writer:   dataframe.to_excel(writer, sheet_name="Distribution")   except FileNotFoundError:  with pd.ExcelWriter(book_name) as writer:   dataframe.to_excel(writer, sheet_name="Distribution")  wb = Workbook("3DChart.xlsx") ws = wb.active  surface_chart = SurfaceChart3D() values = Reference(ws, min_col=2, max_col=6, min_row=2, max_row=6) labels = Reference(ws, min_col=2, max_col=6, min_row=2, max_row=6) surface_chart.add_data(values) surface_chart.set_categories(labels) surface_chart.title = "Distribution"  ws.surface_chart(surface_chart, "G1")  ws.add_chart(surface_chart, "G29")  startfile(book_name)  

Этот код приводит к следующему обратному отслеживанию и ошибке:

 Traceback (most recent call last):   line 32, in lt;modulegt;  surface_chart.add_data(values)   line 183, in add_data  series = SeriesFactory(ref, title_from_data=titles_from_data)   line 24, in SeriesFactory  source = NumDataSource(numRef=NumRef(f=values))   line 100, in __init__  self.f = f   line 35, in __set__  super(Nested, self).__set__(instance, value)   line 67, in __set__  value = _convert(self.expected_type, value)   line 57, in _convert  raise TypeError('expected '   str(expected_type))  TypeError: expected lt;class 'str'gt;  

При попытке использовать простой список данных это, похоже, работает. Я пробовал поиграть с форматом своего словаря, но, похоже, всегда получаю одну и ту же ошибку в функции add_data.

Спасибо,

Комментарии:

1. Пожалуйста, отредактируйте свой вопрос, чтобы включить полную обратную связь. Без этого любому человеку трудно понять, в чем проблема в вашем коде.

2. Извини за это. не позволил бы мне публиковать так много кода без дополнительного текста. Я добавил небольшой текст и включил полную обратную связь.