gpt4 book ai didi

python - 使用 XlsxWriter 在 python 3.5 中创建图表,其中系列值基于循环

转载 作者:行者123 更新时间:2023-12-04 20:11:40 27 4
gpt4 key购买 nike

我在 Windows 10 上使用 Python 3.5。希望我能清楚地表达我想要完成的工作,同时尽可能减少混淆......

我编写了一个执行多项任务的 Python 脚本,其中一些任务包括通过 XlsxWriter 根据脚本早期部分中的代码生成的数据创建 Excel 工作簿。我试图让我的脚本也创建一个图表,再次使用 XlsxWriter,基于此数据。我在网上看到了几个示例,虽然有用,但这些示例与我自己的个人代码之间存在一个特定差异,这让我不确定如何继续。

尝试将系列添加到图表时出现我的问题。在配置系列时,我遇到的几个示例包括这样的内容(注意:我实际上并没有使用这个确切的代码):

chart.add_series({
'name': '=Sheet1!$A$2:$A$7 '
})

由于我的脚本的性质涉及循环和可变长度,因此生成的数据可以填充到各个列和行中,因此我不能将诸如 'name' 之类的东西分配给诸如 'Sheet1!$A$2:$A 之类的固定引用$7' 因为虽然从我的脚本生成的所有数据都将存在于同一张工作表上,但它永远不会始终只在“A”列中,并且只在单元格 2 到 7 之间。

那么,我该如何解决呢?同样,由于可变项目等,我告诉 XlsxWriter 填充单元格的方式是创建变量 row_1 = 0col_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]
})

这是因为我使用变量作为索引吗? sb_subCount_list_clean 是一个列表,其中包含我用来创建图表的数据。该列的长度将是这个长度加上 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],
})

引用 docs .

至于你得到的错误(编辑后): Subscribers不是 XlsxWriter 参数,您的意思可能是 values :
 chart.add_series({
'values': ['Sheet1', row_1 + 2, col_1,
2 + len(sb_subCount_list_clean), col_1]
})

关于python - 使用 XlsxWriter 在 python 3.5 中创建图表,其中系列值基于循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com