Я пытался создать диаграмму для некоторых данных, которые я печатаю в Excel из Python, используя xlsxwriter. Однако я не смог получить результаты, так как метод chart.add_series (), похоже, не распознает мои данные.
Посмотрите на мой код:
row_offset = 0
col_offset = 0
columns = ['Meses ' + str(years[0]), 'Meses ' + str(years[1]), 'Meses ' +str(years[2]),
'Trim '+ str(years[0]), 'Trim ' + str(years[1]), 'Trim ' + str(years[2]),
'Año '+ str(years[0]), 'Año ' + str(years[1]), 'Año ' + str(years[2]) ]
index = ['Ene','Feb','Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep',
'Oct', 'Nov','Diciembre', 'I-Trim', 'II-Trim', 'III-Trim', 'IV-Trim', 'Año']
worksheet = workbook.add_worksheet('Comportamiento SIN')
writer.sheets['Comportamiento SIN'] = worksheet
chart = workbook.add_chart({'type': 'column'})
for col_num, value in enumerate(columns):
worksheet.write(row_offset, col_num + 1, value)
for row_num, value in enumerate(index):
worksheet.write(row_num + 1, col_offset, value)
#this prints the info on the image, nreg[j][i] contains a DataFrame
for i in range(len(nreg)):
junk = 0
for j in nreg:
nreg[j][i].loc[:,'DEMANDA'].to_frame().to_excel(writer, 'Comportamiento SIN', startrow = row_offset + 1,
startcol = col_offset + 1, header = False, index = False )
col_offset += 1
if junk == 0:
max_len = len(nreg[j][i].index)
junk += 1
row_offset += max_len
chart.add_series({'value':['Comportamiento SIN', 1,1,12,1]},)
worksheet.insert_chart ('B22', chart)
writer.save()
Данные, которые я печатаю в Excel, выглядят так:
Печатные данные
Когда я выполняю свой скрипт, я получаю эту ошибку на writer.save()
:
Исключение: диаграмма 1 должна содержать хотя бы один ряд данных. См. Chart.add_series ().