python获取excel文件,多列数据分别为,取样时间,工艺编号,直径平均值,根据工艺编号相同的数据为一组,查看每天每组数据的直径平均值的值,有标准值上限和下限,然后输出折线图,要求折线图显示标准值上限和下限,每张图只显示一个工艺编号的数据
时间: 2024-04-30 19:24:14 浏览: 98
以下是一个Python代码示例,演示如何获取Excel文件并生成折线图:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 按工艺编号和取样时间排序
df = df.sort_values(['工艺编号', '取样时间'])
# 创建一个空的DataFrame,用于存储每个工艺编号每天的平均值
result = pd.DataFrame(columns=['工艺编号', '日期', '平均值'])
# 遍历每个工艺编号
for process in df['工艺编号'].unique():
# 获取该工艺编号的数据
process_data = df[df['工艺编号'] == process]
# 遍历每天的数据
for date in process_data['取样时间'].dt.date.unique():
# 获取该天的数据
date_data = process_data[process_data['取样时间'].dt.date == date]
# 计算平均值
avg = date_data['直径平均值'].mean()
# 将结果添加到result中
result = result.append({
'工艺编号': process,
'日期': date,
'平均值': avg
}, ignore_index=True)
# 定义标准值上限和下限
upper_limit = 10
lower_limit = 5
# 遍历每个工艺编号,生成折线图
for process in result['工艺编号'].unique():
# 获取该工艺编号的数据
process_data = result[result['工艺编号'] == process]
# 绘制折线图
plt.plot(process_data['日期'], process_data['平均值'], label=process)
# 绘制标准值上限和下限
plt.axhline(y=upper_limit, color='r', linestyle='--')
plt.axhline(y=lower_limit, color='r', linestyle='--')
# 设置图表标题和标签
plt.title('工艺编号{}'.format(process))
plt.xlabel('日期')
plt.ylabel('直径平均值')
plt.legend()
# 显示图表
plt.show()
```
这段代码首先读取Excel文件,并按工艺编号和取样时间排序。然后遍历每个工艺编号和每天的数据,计算平均值,并将结果存储到一个新的DataFrame中。接着遍历每个工艺编号,生成折线图,并在图表上绘制标准值上限和下限。最后显示图表。注意,这段代码假设Excel文件中的日期格式是datetime类型。如果日期格式不同,需要根据实际情况进行调整。
阅读全文