创建 XlsxWriter 图表的问题

Issues creating XlsxWriter chart

我想显示 erreur 的图表,从 1 到 100,以及 nb_mesure。我找不到它抛出的错误是什么意思。

这是完整的代码:

#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')

import xlsxwriter
import random

# Créater un tableau et  un fiche
workbook = xlsxwriter.Workbook('tableau.xlsx')
worksheeta= workbook.add_worksheet()
worksheetb= workbook.add_worksheet()

#Fixer le numbre de mesure et le critère
Nb_Mesures = 100
critere = 0.03

#Différer la forme
format=workbook.add_format()    
format.set_border(1)  

format_ave=workbook.add_format()    
format_ave.set_bold()  
format_ave.set_align('center')


format_num=workbook.add_format()
format_num.set_num_format('0.00')   
format_num.set_align('center')

#créerer le worksheeta
worksheeta.write('A1', 'Nb_Mesures', format_ave)
worksheeta.write('B1', 'angle_aleatoire', format_ave)
worksheeta.write('C1', 'angle_mesuré',format_ave)
worksheeta.write('D1','erreur',format_ave)

worksheeta.set_column(0, 1, 13)
worksheeta.set_column(1, 1, 15)
worksheeta.set_column(2, 1, 20)
worksheeta.set_column(3, 1, 10)

#Insérer le data
data1 = []
data2 = []
data3 = []
data4 = []

sum1 = 0
sum2 = 0
sum3 = 0

for row in range(1, Nb_Mesures + 1):
    b = random.randrange(0, 360)
    c = b*(1+0.02)
    d = ( - b * 0.02)
    sum1 += b
    sum2 += c
    sum3 += d
    data1.append(row)
    data2.append(b)
    data3.append(c)
    data4.append(d)

ave1 = sum1 / Nb_Mesures
ave2 = sum2 / Nb_Mesures
ave3 = sum3 / Nb_Mesures

#Ecrir les data dans le tableau
worksheeta.write_column('A2', data1, format_ave)
worksheeta.write_column('B2' ,data2, format_num)
worksheeta.write_column('C2', data3,  format_num)
worksheeta.write_column('D2', data4, format_num)
worksheeta.write('A102', 'Average', format_ave)
worksheeta.write('B102', ave1, format_num)
worksheeta.write('C102', ave2, format_num)
worksheeta.write('D102', ave3, format_num)

#créer un schéma,below code has the problem
charta  = workbook.add_chart({'type' : 'line'})

def chart_series(cur_clo):
        charta.add_series({

            'values': '=Sheeta!$D$'+cur_clo+':$D$'+cur_clo,
            })

for cline in range(2 , 101):
    chart_series(str(cline))

worksheeta.insert_chart('F2',charta)
charta.set_size({'width': 1000, 'height': 500})

workbook.close()

这个程序有两个错误:

  1. 您指的是未创建的名为 Sheeta 的 sheet:程序创建 Excel 默认 Sheet1Sheet2 等.
  2. 您正在为图表上的每个点创建一个图表系列。

此外,以编程方式生成图表系列时,最好使用列表语法而不是字符串语法。将您的 add_series() 调用和函数替换为以下内容应该可以修复这些错误:

charta.add_series({
    'values': ['Sheet1', 1, 3, 100, 3],
})

如果您刚开始,请参阅文档的 Working with Charts and Chart Examples 部分。