我有一个EXCEL文件,它有两列,‘时间’和‘样本’.我想做一个‘样本’对‘时间’的折线图.

我试过:

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

workbook = writer.book
worksheet = writer.sheets[sheet_name]


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


chart.add_series({'values': ["Sheet 1", 1, 1, 2000, 1]})
chart.add_series({'values': ["Sheet 1", 1, 2, 2000, 2]})

worksheet.insert_chart('P2', chart)

workbook.close`

代码运行了,但我无法打开EXCEL文件.有谁可以帮我?谢谢!

推荐答案

代码有几个问题:

  • 图表系列引用名为"Sheet 1"(带空格)的工作表,但代码创建了名为"Sheet1"(无空格)的工作表.
  • 数据框不会写入包含df.to_excel()的Excel文件
  • close()应该在writer号公路上,而不是workbook号公路上.这不是一个严重的错误,但最好避免它.

解决了这些问题后,您应该会得到预期的输出:

import pandas as pd

df = pd.DataFrame(
    {
        "Data1": [10, 20, 30, 10, 19, 35, 40],
        "Data2": [20, 10, 30, 20, 15, 30, 45],
    }
)

excel_file = "test.xlsx"
sheet_name = "Sheet1"
writer = pd.ExcelWriter(excel_file, engine="xlsxwriter")

df.to_excel(writer, sheet_name=sheet_name)

workbook = writer.book
worksheet = writer.sheets[sheet_name]

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

(max_row, max_col) = df.shape

chart.add_series({"values": [sheet_name, 1, 1, max_row, 1]})
chart.add_series({"values": [sheet_name, 1, 2, max_row, 2]})

worksheet.insert_chart(1, 4, chart)

writer.close()

输出:

enter image description here

Python相关问答推荐

在Python中根据id填写年份系列

Python如何让代码在一个程序中工作而不在其他程序中工作

将从Python接收的原始字节图像数据转换为C++ Qt QIcon以显示在QStandardProject中

symy.分段使用numpy数组

Python中的负前瞻性regex遇到麻烦

将整组数组拆分为最小值与最大值之和的子数组

海运图:调整行和列标签

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

用Python解密Java加密文件

Polars:用氨纶的其他部分替换氨纶的部分

如何在Python数据框架中加速序列的符号化

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

实现自定义QWidgets作为QTimeEdit的弹出窗口

给定高度约束的旋转角解析求解

不允许访问非IPM文件夹

如何在turtle中不使用write()来绘制填充字母(例如OEG)

Plotly Dash Creating Interactive Graph下拉列表

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

matplotlib + python foor loop

在输入行运行时停止代码