gpt4 book ai didi

python - xlsxwriter/python - 通过索引系列值使用 Python 创建图表

转载 作者:行者123 更新时间:2023-12-01 01:44:32 35 4
gpt4 key购买 nike

我编写了一个 python 脚本,它生成多个数据帧,然后将它们汇总成一个最终数据帧。然后将最终数据帧 df 写入 Excel 工作簿中的 Excel 工作表(以及许多其他包含之前写入的数据帧的工作表)。最终的数据框是每月为多个名称指定的值,如下所示:

df = 
Apr 18 May 18 Jun 18
Character
Sonic 75.0 23.0 23.0
Shadow 100.0 38.0 38.0
Amy 100.0 40.0 40.0
Tails 100.0 40.0 40.0
Knuckles 91.0 36.0 37.0


# where {$A1: 'Character', $B$1: 'Apr 18', ...} and so on...

我对 xlsxwriter 的工作原理也很陌生。我认为我的问题是我无法将我的系列的假设值参数正确分配给图表。

我用来有点绘制 April/test 作为可能的 for 循环基础的基本代码在这里:

workbook = writer.book
worksheet = writer.sheets['FINAL VALUES']

chart = workbook.add_chart({'type': 'line'})
chart.add_series({
'name': '=FINAL VALUES!$B$1',
'categories': '=FINAL VALUES!$A$2:$A$5',
'values': '=FINAL VALUES!$B$2:$B$5',})

chart.set_title ({'name': 'Line Plot Test'})
chart.set_x_axis({'name': 'Month'})
chart.set_y_axis({'name': 'Value'})

worksheet.insert_chart('D2', chart)

如何使用 for 循环将我的系列索引到先前创建的 Excel 工作表的单元格中,以创建 5 条线(每条线 3 个点)的线图?

我想要这样的东西,在这个例子中我只展示了索尼克和阴影(请原谅我可怕的绘画技巧)。

enter image description here

最佳答案

您在帖子中提到了以下内容:

into a previously created excel sheet's cells

xlsxwriter 文档声明:“XlsxWriter 是一个 Python 模块,用于以 Excel 2007+ XLSX 文件格式写入文件。......它无法读取或修改现有的 Excel XLSX 文件。” (Link Here)。因此您无法使用 xlsxwriter 修改现有的 .xlsx 文件。

如果您可以创建原始 .xlsx 文件,那么使用 xlsxwriter 可以相对简单地创建您正在寻找的图表类型。我在下面提供了一个完全可重现的示例。

import pandas as pd

df = pd.DataFrame({'Character': ['Sonic','Shadow','Amy','Tails','Knuckles'],
'Apr 18': [75,90,80,75,60],
'May 18': [23,30,60,50,37],
'Jun 18': [23,20,26,40,35]})

df = df[['Character','Apr 18','May 18','Jun 18']]

writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')

df.to_excel(writer, sheet_name='FINAL VALUES', index=False)

workbook = writer.book
worksheet = writer.sheets['FINAL VALUES']

chart = workbook.add_chart({'type': 'line'})

for i in range(2, len(df) + 2):
chart.add_series({
'categories': "='FINAL VALUES'!$B$1:$D$1",
'name': "='FINAL VALUES'!$A$%d" % (i),
'values': "='FINAL VALUES'!$B$%d:$D$%d" % (i, i),
'line': {
'width': 1.75,
},
'marker': {'type': 'circle'},
'data_labels': {'value': True},
})

chart.set_title ({'name': 'Line Plot Test'})
chart.set_x_axis({'name': 'Month'})
chart.set_y_axis({'name': 'Value'})

worksheet.insert_chart('D7', chart)

writer.save()

预期输出: Expected Output

关于python - xlsxwriter/python - 通过索引系列值使用 Python 创建图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51525385/

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