python - 尝试绘制简单柱形图时遇到 "TypeError: integer argument expected, got float"

标签 python python-2.7 graph xlsxwriter

我正在尝试使用 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/

相关文章:

python - 根据脚本将参数增加到 PyEval_EvalCode

python-2.7 - 在 centos 6.4 上安装 numpy&scipy

python - 私有(private)模块的命名约定

python-3.x - 如何根据替代属性选择所有元素? [美汤]

java - 在类似图形的对象中查找循环

graph - 是否有像图这样的树的名称,其中的节点可以有多个父节点,但仍然只有上面的一级

c++ - 如何访问Boost Graph中的边信息?

python - 是否可以生成具有这种非常特定背景的图表?

python - 导入错误 : No module named elementtree. SimpleXMLWriter

Python 3 不会引发无效文件名的异常