我正在尝试使用 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
这是可以理解的,因为我传递了一个内部包含 float 类型值的列表。但这是否意味着我根本无法绘制浮点值,或者是否有解决方法?
最佳答案
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]})
关于python - 尝试绘制简单柱形图时遇到 "TypeError: integer argument expected, got float",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33869524/