Encountered "TypeError: integer argument expected, got float" while trying to plot a simple column chart
Encountered "TypeError: integer argument expected, got float" while trying to plot a simple column chart
我正在尝试使用 xlsxwriter 绘制一个简单的柱形图。以下是我为此编写的脚本:
import xlsxwriter
cmui = [456.0,424.08,114.0,22.8,22.8]
workbook = xlsxwriter.Workbook('first.xlsx')
worksheet = workbook.add_worksheet()
chart = workbook.add_chart({'type':'column'})
dec = workbook.add_format({'num_format':'#0.000000'})
bold = workbook.add_format()
bgc = workbook.add_format({'bold':'True'})
bgc.set_pattern(1)
bgc.set_bg_color("#DD8000")
chart.add_series({'values':cmui})
chart.set_title({'name':'Example'})
chart.set_y_axis({'name':'A'})
chart.set_x_axis({'name':'B'})
worksheet.insert_chart('A10',chart)
workbook.close()
当我尝试执行上述操作时,出现错误:
TypeError: integer argument expected, got float
这是可以理解的,因为我正在传递一个包含浮动类型值的列表。但这是否意味着我根本无法绘制浮点值,或者是否有解决方法?
使用set_num_format('0.00')
请参阅下面 link 中的示例:
你误会了。根据文档:
chart.add_series({
'categories': '=Sheet1!$A:$A',
'values': '=Sheet1!$B:$B',
'line': {'color': 'red'},
})
# Or using a list of values instead of category/value formulas:
# [sheetname, first_row, first_col, last_row, last_col]
chart.add_series({
'categories': ['Sheet1', 0, 0, 4, 0],
'values': ['Sheet1', 0, 1, 4, 1],
'line': {'color': 'red'},
})
add_series()
函数接受电子表格单元格的坐标,而不是精确值,因此您需要将您的值插入电子表格,然后仅在 values
中指定它们的坐标。
chart.add_series()
values
属性 不采用数据值列表,您应该将数据写入工作表并引用它。像这样:
worksheet.write_column('A1', cmui)
chart.add_series({'values': 'Sheet1!A1:A5'})
values
的列表参数用于指定范围维度,这样您就不必以编程方式生成 Excel 范围,例如 Sheet1!A1:A5
:
chart.add_series({'values': ['Sheet1', 0, 0, 4, 0]})
我正在尝试使用 xlsxwriter 绘制一个简单的柱形图。以下是我为此编写的脚本:
import xlsxwriter
cmui = [456.0,424.08,114.0,22.8,22.8]
workbook = xlsxwriter.Workbook('first.xlsx')
worksheet = workbook.add_worksheet()
chart = workbook.add_chart({'type':'column'})
dec = workbook.add_format({'num_format':'#0.000000'})
bold = workbook.add_format()
bgc = workbook.add_format({'bold':'True'})
bgc.set_pattern(1)
bgc.set_bg_color("#DD8000")
chart.add_series({'values':cmui})
chart.set_title({'name':'Example'})
chart.set_y_axis({'name':'A'})
chart.set_x_axis({'name':'B'})
worksheet.insert_chart('A10',chart)
workbook.close()
当我尝试执行上述操作时,出现错误:
TypeError: integer argument expected, got float
这是可以理解的,因为我正在传递一个包含浮动类型值的列表。但这是否意味着我根本无法绘制浮点值,或者是否有解决方法?
使用set_num_format('0.00')
请参阅下面 link 中的示例:
你误会了。根据文档:
chart.add_series({
'categories': '=Sheet1!$A:$A',
'values': '=Sheet1!$B:$B',
'line': {'color': 'red'},
})
# Or using a list of values instead of category/value formulas:
# [sheetname, first_row, first_col, last_row, last_col]
chart.add_series({
'categories': ['Sheet1', 0, 0, 4, 0],
'values': ['Sheet1', 0, 1, 4, 1],
'line': {'color': 'red'},
})
add_series()
函数接受电子表格单元格的坐标,而不是精确值,因此您需要将您的值插入电子表格,然后仅在 values
中指定它们的坐标。
chart.add_series()
values
属性 不采用数据值列表,您应该将数据写入工作表并引用它。像这样:
worksheet.write_column('A1', cmui)
chart.add_series({'values': 'Sheet1!A1:A5'})
values
的列表参数用于指定范围维度,这样您就不必以编程方式生成 Excel 范围,例如 Sheet1!A1:A5
:
chart.add_series({'values': ['Sheet1', 0, 0, 4, 0]})