Python Xlsxwriter 图表

Python Xlsxwriter charting

我正在尝试构建一个简单的 python 脚本,该脚本从 .csv 文件读取数据,将数据格式化为易于阅读的布局,然后将其写入新的 xlsx 文件或附加到现有的 xlsx 文件,取决于用户输入。一切正常,我使用写入新文件;

    with pd.ExcelWriter(file_path) as writer:
    df.to_excel(writer, sheet_name='Master')

现在我想添加第二个 sheet,其中包含来自数据的 excel 个图表,并将上述代码扩展到;

with pd.ExcelWriter(file_path) as writer:
    df.to_excel(writer, sheet_name='Master')
    book = writer.book
    sheet = writer.sheets['Master']
    chart_a = book.add_chart({'type': 'line'})
    chart_a.add_series({
        'categories': ['Master', 1, 0, trend_data_row, 0],
        'values': ['Master', 1, 1, trend_data_row, 1],
    })
    chart_a.set_x_axis({'name': 'time', 'position_axis': 'on_tick'})
    chart_a.set_y_axis({'name': 'value'})
    chart_a.set_legend({'position': 'Bottom'})
    sheet.insert_chart('A11', chart_a)
    writer.save()

这会按预期将图表添加到 'Master' sheet,我不明白如何创建第二个 sheet 并在那里插入图表。我曾尝试将 sheet = writer.sheets 更改为新名称 [Graphs],但我猜它正在寻找具有该名称的现有 sheet 而不是创建一个。非常感谢任何帮助。

I don't understand how to create the second sheet and insert the chart there instead.

你可以这样做:

import pandas as pd


# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_chart.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Master')

# Get the xlsxwriter workbook object.
workbook  = writer.book

# Add a new worksheet.
worksheet = workbook.add_worksheet('Graphs')

# Create a chart object.
chart = workbook.add_chart({'type': 'column'})

# Configure the series of the chart from the dataframe data.
chart.add_series({'values':  ['Master', 1, 1, 7, 1]})

# Insert the chart into the worksheet.
worksheet.insert_chart('D2', chart)

# Close the Pandas Excel writer and output the Excel file.
writer.save()

输出:

then either writes it to a new xlsx file or appends to an existing xlsx file

XlsxWriter 无法写入现有文件。