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

绘制多标签直方图出现未指定异常颜色,是否存在隐藏数据?

问题:绘制数据集直方图出现未指定的颜色,是否存在隐藏数据?

我用以下Python代码绘制训练集(train_df)、验证集(val_df)、测试集(test_df)的直方图,用于检查数据分布:

def plot_train_test_hist(train_df, val_df,test_df,bins=1000, colname='exp_mean'):
    ''' Check distribution of train/test scores, sanity check that its not skewed'''
    plt.hist(train_df[colname].values,bins=bins,label='train',alpha=0.7)
    plt.hist(val_df[colname].values,bins=bins,label='val',alpha=0.5)
    plt.hist(test_df[colname].values,bins=bins,label='test',alpha=0.4)
    plt.legend()
    plt.xlabel(colname,fontsize=14)
    plt.ylabel("Count",fontsize=14)
    plt.suptitle("Histogram of dataset")
    plt.title('w/o masking in Log',size= 'small')
    plt.show()

绘图后出现了我未指定的颜色,怀疑是否存在隐藏数据导致该现象?附生成的直方图:
直方图


解答
  • 这不是隐藏数据导致的,是Matplotlib的默认行为:plt.hist在未指定color参数时,会自动使用Matplotlib内置的颜色循环序列,依次给每个直方图分配不同颜色,目的是区分不同数据集,属于正常现象。你图中的三个颜色分别对应train、val、test的图例,逻辑匹配,并非异常。

  • 如果想自定义颜色,只需在每个plt.hist调用中添加color参数即可,示例:

    plt.hist(train_df[colname].values,bins=bins,label='train',alpha=0.7, color='#1f77b4')
    plt.hist(val_df[colname].values,bins=bins,label='val',alpha=0.5, color='#ff7f0e')
    plt.hist(test_df[colname].values,bins=bins,label='test',alpha=0.4, color='#2ca02c')
    
  • 若要验证是否存在隐藏数据,可以通过以下代码检查数据集的基本信息:

    # 查看数据集样本数量
    print(f"训练集样本数:{len(train_df)}, 验证集样本数:{len(val_df)}, 测试集样本数:{len(test_df)}")
    # 查看目标列的统计信息
    print("训练集exp_mean列统计:\n", train_df['exp_mean'].describe())
    print("验证集exp_mean列统计:\n", val_df['exp_mean'].describe())
    print("测试集exp_mean列统计:\n", test_df['exp_mean'].describe())
    

    对比输出的样本数和统计值是否符合预期,即可确认数据是否存在异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:52:16