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

理解统计直方图与QQ图,识别并剔除不可靠气象数据

气象数据统计校验问题解答

1. 统计图解读与常量列量化识别

统计图解读

  • 带KDE的直方图:若数据符合正态分布,直方图会呈现对称钟形,KDE(核密度估计)曲线也会是对称的单峰形态;如果是常量列,直方图会是一根极窄的竖线(所有值集中在同一个点),KDE曲线会是一个尖锐的单峰。
  • QQ图:若数据符合正态分布,样本点会紧密贴合图中的参考直线;常量列的QQ图则是一条水平直线(所有样本分位数相同)。

量化识别并剔除常量列

直接通过数值特征判断,无需依赖可视化:

  • 方法1:计算列的标准差,标准差接近0说明值几乎无波动
    # 保留标准差大于极小阈值的列(避免浮点精度问题)
    valid_cols = df.columns[df.std() > 1e-6]
    df = df[valid_cols]
    
  • 方法2:统计列的唯一值数量,唯一值极少则判定为常量列
    # 剔除唯一值数量≤1的列
    cols_to_drop = [col for col in df.columns if df[col].nunique() <= 1]
    df = df.drop(cols_to_drop, axis=1)
    

2. QQ图横纵轴定义

  • 纵轴(样本分位数):将当前列的所有数据从小到大排序后,每个位置对应的实际观测值。比如排序后第10%位置的数值、第50%位置的中位数等。
  • 横轴(理论分位数):假设数据完全符合正态分布时,对应分位的理论数值。比如标准正态分布中第10%分位的理论值、第50%分位的0值等。
    如果数据符合正态分布,样本分位数和理论分位数会呈现线性关系,所有点会落在QQ图的参考直线上。

3. 调整子图高度显示x轴标签

用Matplotlib调整布局的几种实用方法:

  1. 增大整体图的高度,并自动调整布局
    import matplotlib.pyplot as plt
    
    # 2行n列的子图,调大figsize的高度值
    fig, axes = plt.subplots(nrows=2, ncols=len(df.columns), figsize=(12, 10))
    # 自动调整子图间距
    plt.tight_layout()
    plt.show()
    
  2. 手动调整底部留白,给x轴标签预留空间
    fig, axes = plt.subplots(nrows=2, ncols=len(df.columns), figsize=(12, 8))
    # 调大bottom值增加底部留白
    plt.subplots_adjust(bottom=0.2)
    plt.show()
    
  3. 旋转x轴标签避免重叠
    fig, axes = plt.subplots(nrows=2, ncols=len(df.columns), figsize=(12, 8))
    # 遍历子图旋转x轴标签
    for ax in axes.flat:
        ax.tick_params(axis='x', rotation=45, ha='right')
    plt.tight_layout()
    plt.show()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:09:56