使用python写一段代码,获取指定路径excel的内容通过Plotly生成组合折线图,其中A列为:"BUG单号",B列为:"BUG创建日期",C列为:"BUG分类",按照"BUG分类"生成每个BUG创建日期新增的BUG量图表,其中BUG创建日期只精确到日,并将生成的图表重命名为“当前日期”保存到指定路径
时间: 2023-06-06 14:08:49 浏览: 119
以下是使用 Python 获取指定路径 Excel 内容并通过 Plotly 生成组合折线图的代码。在代码中,需要替换以下内容:
- path_to_excel: 指定路径 Excel 文件的路径。
- sheet_name: Excel 文件中要读取的工作表名称。
- plotly_username: Plotly 帐户的用户名。
- plotly_api_key: Plotly 帐户的 API 密钥。
- plotly_chart_title: 生成的图表标题。
- plotly_chart_filename: 生成的图表文件名,不包括扩展名和日期部分。
- plotly_chart_folder: 生成的图表文件夹路径。
```python
import plotly.graph_objs as go
import plotly.offline as pyo
import pandas as pd
import datetime
# 指定路径 Excel 文件的路径
path_to_excel = 'path/to/excel/file.xlsx'
# Excel 文件中要读取的工作表名称
sheet_name = 'Sheet1'
# Plotly 帐户的用户名和 API 密钥
plotly_username = 'your_plotly_username'
plotly_api_key = 'your_plotly_api_key'
# 生成的图表标题、文件名和文件夹路径
plotly_chart_title = 'Bug Report'
plotly_chart_filename = 'bug_report'
plotly_chart_folder = 'path/to/chart/folder/'
# 读取 Excel 文件中指定工作表的内容
df = pd.read_excel(path_to_excel, sheet_name=sheet_name)
# 按照 BUG 分类和创建日期进行分组统计
grouped = df.groupby(['BUG分类', pd.Grouper(key='BUG创建日期', freq='D')]).count()['BUG单号']
grouped = grouped.reset_index()
# 按照 BUG 分类生成每个 BUG 创建日期新增的 BUG 数量图表
data = []
for category in grouped['BUG分类'].unique():
filtered = grouped[grouped['BUG分类'] == category]
trace = go.Scatter(
x=filtered['BUG创建日期'],
y=filtered['BUG单号'],
mode='lines+markers',
name=category
)
data.append(trace)
# 生成组合折线图
layout = go.Layout(
title=plotly_chart_title,
xaxis=dict(
title='Date',
tickformat='%Y-%m-%d'
),
yaxis=dict(
title='Number of Bugs'
),
legend=dict(
x=0,
y=1
)
)
fig = go.Figure(data=data, layout=layout)
# 在 Plotly 中生成图表并保存到指定文件夹
pyo.init_notebook_mode(connected=True)
pyo.plot(fig, filename=plotly_chart_folder + plotly_chart_filename + '-' + datetime.date.today().strftime('%Y%m%d') + '.html', auto_open=False,
username=plotly_username, api_key=plotly_api_key)
```
运行代码后,将在指定的文件夹中生成一个 HTML 文件,其中包含按照 BUG 分类生成的组合折线图。每个图表的文件名格式为“当前日期-bug_report.html”。注意,在运行代码之前请确保已安装 Plotly 和 Pandas 库。
阅读全文