python实现对手环的数据分析,可以更好的提供用户想要的自身信息,并且通过这些数据分析可提供用户相关的健康建议。根据已有的手环数据进行相关活动分析。数据中包含手环一周的模拟数据。文件类型为xlsx,分为基本信息、跑步、步行、骑行、健身、羽毛球和心率等记录工作表,数据文件为data1.xlsx。 要求: (1)统计一周中每天的步数、距离的情况 (2)统计每日消耗卡路里情况 (3)统计每日心率情况 (4)统计每日温度情况 (5)统计每日体温变化 (6)统计运动情况 (7)每日运动持续时长 (8)每次运动心率最大值、最小值、平均值 (9)要求使用图表进行展示
时间: 2024-04-01 09:31:44 浏览: 117
好的,根据您的要求,我可以给您提供一些 python 实现手环数据分析的代码和相应的图表展示。代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据文件
data = pd.read_excel('data1.xlsx')
# 统计每天的步数和距离情况
daily_steps = data.groupby('日期')['步数'].sum()
daily_distance = data.groupby('日期')['距离'].sum()
# 绘制每天的步数和距离情况折线图
plt.plot(daily_steps.index, daily_steps.values, label='步数')
plt.plot(daily_distance.index, daily_distance.values, label='距离')
plt.xlabel('日期')
plt.ylabel('步数/距离')
plt.title('每天的步数和距离情况')
plt.legend()
plt.show()
# 统计每日消耗卡路里情况
daily_calories = data.groupby('日期')['消耗卡路里'].sum()
# 绘制每日消耗卡路里情况柱状图
plt.bar(daily_calories.index, daily_calories.values)
plt.xlabel('日期')
plt.ylabel('消耗卡路里')
plt.title('每日消耗卡路里情况')
plt.show()
# 统计每日心率情况
daily_heart_rate = data.groupby('日期')['心率'].mean()
# 绘制每日心率情况折线图
plt.plot(daily_heart_rate.index, daily_heart_rate.values)
plt.xlabel('日期')
plt.ylabel('心率')
plt.title('每日心率情况')
plt.show()
# 统计每日温度情况
daily_temperature = data.groupby('日期')['温度'].mean()
# 绘制每日温度情况折线图
plt.plot(daily_temperature.index, daily_temperature.values)
plt.xlabel('日期')
plt.ylabel('温度')
plt.title('每日温度情况')
plt.show()
# 统计每日体温变化
daily_body_temperature = data.groupby('日期')['体温'].mean()
# 绘制每日体温变化折线图
plt.plot(daily_body_temperature.index, daily_body_temperature.values)
plt.xlabel('日期')
plt.ylabel('体温')
plt.title('每日体温变化情况')
plt.show()
# 统计运动情况
sports = ['跑步', '步行', '骑行', '健身', '羽毛球']
sport_time = []
for sport in sports:
sport_time.append(data[data['运动类型']==sport]['持续时间'].sum())
# 绘制运动情况饼图
plt.pie(sport_time, labels=sports, autopct='%1.1f%%')
plt.title('运动情况')
plt.show()
# 统计每日运动持续时长
daily_sport_time = data.groupby('日期')['持续时间'].sum()
# 绘制每日运动持续时长柱状图
plt.bar(daily_sport_time.index, daily_sport_time.values)
plt.xlabel('日期')
plt.ylabel('运动持续时长')
plt.title('每日运动持续时长')
plt.show()
# 统计每次运动心率最大值、最小值、平均值
sports = ['跑步', '步行', '骑行', '健身', '羽毛球']
for sport in sports:
max_hr = data[data['运动类型']==sport]['心率'].max()
min_hr = data[data['运动类型']==sport]['心率'].min()
mean_hr = data[data['运动类型']==sport]['心率'].mean()
print('{}: 最大心率={}, 最小心率={}, 平均心率={}'.format(sport, max_hr, min_hr, mean_hr))
```
以上代码实现了您的所有要求,并且使用了多种图表进行展示。您可以根据实际情况对代码进行修改和优化。
阅读全文