You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:如何用Pandas制作动物体重频数直方图?

修正后的动物体重直方图代码

你的原代码逻辑偏离了需求——你是按动物物种分组统计数量,导致X轴变成了物种名,完全不符合“X轴为体重值、Y轴为对应体重的动物数量”的要求。下面是新手友好的简洁代码:

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据:Windows路径加r前缀避免反斜杠转义问题,sep='\t'适配制表符分隔的文件
df = pd.read_csv(r"S:\Annee1\ISD\TP3\PanTHERIA_1-0_WR05_Aug2008.txt", sep='\t')

# 提取体重列,删除空值(避免画图报错)
body_mass = df['5-1_AdultBodyMass_g'].dropna()

# 方法1:针对离散体重值,统计每个体重对应的动物数量
weight_counts = body_mass.value_counts().sort_index()
weight_counts.plot.bar(figsize=(12, 6), rot=45)

# 方法2:针对连续体重值(更常见),按区间统计数量(注释掉上面的方法1,解开下面的注释即可用)
# body_mass.plot.hist(bins=20, figsize=(12, 6))

# 设置图表标签和标题
plt.title('动物体重分布', fontsize=14)
plt.xlabel('体重(克)', fontsize=12)
plt.ylabel('动物数量', fontsize=12)

# 自动调整布局,防止标签被截断
plt.tight_layout()
# 显示图表
plt.show()

关键说明:

  • 路径用r"..."是新手避坑技巧:避免Windows路径里的反斜杠被当作转义字符
  • dropna()删除体重列的空值,防止画图时触发错误
  • 两种方法按需选:方法1适合体重是离散值的场景,直接展示每个体重对应的动物数;方法2是连续数据的标准直方图,按区间分组统计
  • 原代码的groupby('MSW05_Binomial')是按物种分组,完全偏离了“统计体重分布”的目标,所以要去掉

内容的提问来源于stack exchange,提问作者Calvin Graf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:50:20