使用XlsxWriter在python 3.5中创build图表,其中系列值基于循环
我正在使用Windows 10上的Python 3.5。希望我可以阐明我正在尝试完成,同时允许尽可能less的混淆…
我已经编写了一个Python脚本来执行几个任务,其中一些任务包括通过XlsxWriter基于脚本前面部分代码生成的数据创build一个Excel工作簿。 我试图让我的脚本也创build一个图表,再次使用基于这些数据的XlsxWriter。 我在网上看到了几个例子,虽然有用,但是这些例子和我自己的个人代码之间有一个特定的区别,这让我不确定如何继续。
尝试将一系列图表添加到图表时,出现了我的问题。 当configuration一个系列时,我遇到的几个例子包括这样的东西(注意:我实际上并没有使用这个确切的代码):
chart.add_series({ 'name': '=Sheet1!$A$2:$A$7 ' })
由于我的脚本涉及循环和可变长度的性质,所产生的数据可以填充到各个列和行中,所以我不能指定像“名称”这样的固定引用,例如“Sheet1!$ A $ 2:$ A 7美元“,因为虽然从我的脚本生成的所有数据将存在于同一张纸上,但它永远不会始终只在列”A“中,并且只在单元格2到7之间。
那么,我怎样才能解决这个问题呢? 同样,由于variables项等,我告诉XlsxWriter填充单元格的方式是创buildvariablesrow_1 = 0
和col_1 = 0
,并根据需要递增它们。 我可以写一些类似的东西
chart.add_series({ 'name': '=Sheet1!row:col+7' })
通过XlsxWriter?
编辑 :所以我只是发现我可以使用替代索引似乎是我的解决方法添加到图表的一个系列。 但是,我收到以下错误消息:
UserWarning: Must specify 'values' in add_series() warn("Must specify 'values' in add_series()")
基于这一点的代码:
chart.add_series({ 'Subscribers': ['Sheet1', row_1 + 2, col_1, 2 + len(sb_subCount_list_clean), col_1] })
这是因为我使用variables作为我的索引? sb_subCount_list_clean是一个包含我用来创build图表的数据的列表。 该列将是这个长度加2,因为我有一些头占据前两个单元格。
几乎在XlsxWriter API的所有部分中,任何地方都有像A1
这样的单元格引用,或者像=Sheet1!$A$1
这样的范围,您可以使用元组或值列表。 对于图表,您可以使用如下所示的值列表:
# String interface. This is good for static ranges. chart.add_series({ 'name': '=Sheet1!$A$1', 'categories': '=Sheet1!$B$1:$B$5', 'values': '=Sheet1!$C$1:$C$5', }) # Or using a list of values instead of name/category/value formulas: # [sheetname, first_row, first_col, last_row, last_col] # This is better for generating programmatically. chart.add_series({ 'name': ['Sheet1', 0, 0 ], 'categories': ['Sheet1', 0, 1, 4, 1], 'values': ['Sheet1', 0, 2, 4, 2], })
参考文档 。
至于你得到的错误(在编辑之后): Subscribers
不是XlsxWriter参数,你可能意味着values
:
chart.add_series({ 'values': ['Sheet1', row_1 + 2, col_1, 2 + len(sb_subCount_list_clean), col_1] })