这个python案例显示体能消耗数据差异?

wen python案例 2

Python 案例:显示体能消耗数据差异

下面是一个完整的 Python 案例,用于对比和可视化不同运动/人群的体能消耗数据差异。

这个python案例显示体能消耗数据差异?

完整代码

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# ========== 1. 构造体能消耗数据(单位:千卡/小时) ==========
data = {
    '运动项目': ['慢跑', '快跑', '游泳', '骑行', '跳绳', '瑜伽', '篮球'],
    '男性': [600, 900, 750, 550, 880, 250, 700],
    '女性': [500, 750, 650, 450, 750, 200, 580]
}
df = pd.DataFrame(data)
print("体能消耗数据:\n", df)
# ========== 2. 计算差异 ==========
df['差值(男-女)'] = df['男性'] - df['女性']
df['差异百分比(%)'] = (df['差值(男-女)'] / df['女性'] * 100).round(1)
print("\n差异分析:\n", df)
# ========== 3. 分组柱状图对比 ==========
x = np.arange(len(df['运动项目']))
width = 0.35
fig, axes = plt.subplots(1, 2, figsize=(15, 6))
# 左图:男性 vs 女性消耗对比
axes[0].bar(x - width/2, df['男性'], width, label='男性', color='#4A90E2')
axes[0].bar(x + width/2, df['女性'], width, label='女性', color='#E94B6B')
axes[0].set_xticks(x)
axes[0].set_xticklabels(df['运动项目'])
axes[0].set_ylabel('消耗 (千卡/小时)')
axes[0].set_title('男女体能消耗对比')
axes[0].legend()
axes[0].grid(axis='y', alpha=0.3)
# 右图:差异百分比
colors = ['#2ECC71' if v > 0 else '#E74C3C' for v in df['差异百分比(%)']]
axes[1].bar(df['运动项目'], df['差异百分比(%)'], color=colors)
axes[1].axhline(0, color='black', linewidth=0.8)
axes[1].set_ylabel('差异百分比 (%)')
axes[1].set_title('男性相对女性的消耗差异(%)')
axes[1].grid(axis='y', alpha=0.3)
for i, v in enumerate(df['差异百分比(%)']):
    axes[1].text(i, v + 0.8, f'{v}%', ha='center', fontsize=10)
plt.tight_layout()
plt.show()

输出结果示例

体能消耗数据:
   运动项目  男性  女性
0   慢跑   600  500
1   快跑   900  750
2   游泳   750  650
3   骑行   550  450
4   跳绳   880  750
5   瑜伽   250  200
6   篮球   700  580
差异分析:
   运动项目  男性  女性  差值(男-女)  差异百分比(%)
0   慢跑   600  500       100        20.0
1   快跑   900  750       150        20.0
2   游泳   750  650       100        15.4
3   骑行   550  450       100        22.2
4   跳绳   880  750       130        17.3
5   瑜伽   250  200        50        25.0
6   篮球   700  580       120        20.7

案例分析要点

1️⃣ 数据差异体现方式

方式 说明
绝对差值 男性 - 女性(千卡)
百分比差异 (差值 / 女性) × 100%
可视化对比 分组柱状图 + 差异图

2️⃣ 图表设计思路

  • 左图:直观展示两组绝对值对比,颜色区分性别
  • 右图:突出差异,用绿色表示男性更高、红色表示更低,加百分比标注
  • 零线参考:axhline(0) 快速识别正负差异

3️⃣ 可扩展方向

# 加一个总体统计
print(f"\n平均差异:{df['差值(男-女)'].mean():.1f} 千卡")
print(f"差异最大项:{df.loc[df['差值(男-女)'].idxmax(), '运动项目']}")

4️⃣ 注意点

  • ⚠️ 实际数据需按体重标准化(如 千卡/kg/小时),否则差异可能来自体重而非性别
  • ⚠️ 建议用 Seaborn 的 boxplot 展示真实大样本分布,比单均值更有说服力

如果你有具体的数据文件(CSV/Excel),我可以把案例改成直接读取真实数据的版本 👇

抱歉,评论功能暂时关闭!