创建 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()
这个程序有两个错误:
- 您指的是未创建的名为
Sheeta
的 sheet:程序创建 Excel 默认 Sheet1
、Sheet2
等.
- 您正在为图表上的每个点创建一个图表系列。
此外,以编程方式生成图表系列时,最好使用列表语法而不是字符串语法。将您的 add_series()
调用和函数替换为以下内容应该可以修复这些错误:
charta.add_series({
'values': ['Sheet1', 1, 3, 100, 3],
})
如果您刚开始,请参阅文档的 Working with Charts and Chart Examples 部分。
我想显示 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()
这个程序有两个错误:
- 您指的是未创建的名为
Sheeta
的 sheet:程序创建 Excel 默认Sheet1
、Sheet2
等. - 您正在为图表上的每个点创建一个图表系列。
此外,以编程方式生成图表系列时,最好使用列表语法而不是字符串语法。将您的 add_series()
调用和函数替换为以下内容应该可以修复这些错误:
charta.add_series({
'values': ['Sheet1', 1, 3, 100, 3],
})
如果您刚开始,请参阅文档的 Working with Charts and Chart Examples 部分。