Chart.add_series () не работает программно - PullRequest
0 голосов
/ 03 ноября 2018

Я пытался создать диаграмму для некоторых данных, которые я печатаю в 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 ().

...