使用Python读取Excel文件共十二组数据画出波形图、数据值分布柱状图,采用函数/模块定义,取出各组中数据最大值、最小值、平均值、数据总点数 取出特定跨度内的数据片段并画图显示
时间: 2023-12-17 19:05:01 浏览: 141
好的,这里提供一份代码参考:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取Excel文件
data = pd.read_excel('data.xlsx', sheet_name=None)
# 定义函数,绘制波形图和数据值分布柱状图
def plot_waveform(data):
# 绘制波形图
fig, axs = plt.subplots(nrows=len(data), figsize=(8, 4*len(data)))
for i, (name, df) in enumerate(data.items()):
axs[i].plot(df['x'], df['y'])
axs[i].set_title(name)
axs[i].set_xlabel('x')
axs[i].set_ylabel('y')
# 绘制数据值分布柱状图
fig, axs = plt.subplots(nrows=len(data), figsize=(8, 4*len(data)))
for i, (name, df) in enumerate(data.items()):
axs[i].hist(df['y'], bins=20)
axs[i].set_title(name)
axs[i].set_xlabel('y')
axs[i].set_ylabel('count')
plt.show()
# 调用函数,绘制波形图和数据值分布柱状图
plot_waveform(data)
# 定义函数,计算各组数据的最大值、最小值、平均值和数据总点数
def calculate_stats(data):
stats = {}
for name, df in data.items():
stats[name] = {
'max': np.max(df['y']),
'min': np.min(df['y']),
'mean': np.mean(df['y']),
'count': len(df)
}
return stats
# 调用函数,计算各组数据的最大值、最小值、平均值和数据总点数
stats = calculate_stats(data)
print(stats)
# 定义函数,取出特定跨度内的数据片段并绘制图形
def plot_data_within_range(data, name, start, end):
df = data[name][(data[name]['x'] >= start) & (data[name]['x'] <= end)]
plt.plot(df['x'], df['y'])
plt.xlabel('x')
plt.ylabel('y')
plt.show()
# 调用函数,取出特定跨度内的数据片段并绘制图形
plot_data_within_range(data, 'data1', 2, 6)
```
这里假设Excel文件中有多个sheet,每个sheet对应一组数据。其中,每个sheet包含两列数据:x和y。以上代码中的函数/模块定义包括:
- `plot_waveform(data)`:绘制波形图和数据值分布柱状图。
- `calculate_stats(data)`:计算各组数据的最大值、最小值、平均值和数据总点数。
- `plot_data_within_range(data, name, start, end)`:取出特定跨度内的数据片段并绘制图形。
你可以根据具体的数据格式和需求进行相应的修改。
阅读全文