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

合并行生成「Other」行,优化100分类变量条形图可读性

处理大量分类变量的可视化方案

一、合并小类别为「Other」

针对你需要将计数小于5的品牌归入「Other」的需求,用Python pandas可以快速实现:

import pandas as pd

# 假设你的数据集存储在df中,品牌列名为'brand'
# 1. 计算各品牌的出现次数
brand_counts = df['brand'].value_counts()
# 2. 筛选出计数≥5的品牌
qualified_brands = brand_counts[brand_counts >= 5].index
# 3. 生成分组后的品牌列
df['brand_grouped'] = df['brand'].map(lambda x: x if x in qualified_brands else 'Other')
# 4. 绘制分组后的条形图
df['brand_grouped'].value_counts().plot(kind='bar')

处理后类别数量会大幅缩减,条形图的可读性会明显提升。

二、其他适合100个分类变量的可视化方法

如果不想合并类别,以下方法也能解决可读性问题:

  • 横向条形图:将类别标签放在Y轴,避免长标签重叠,搭配计数排序能快速定位高频类别:
    df['brand'].value_counts().sort_values().plot(kind='barh')
    
  • 树状图(Treemap):用面积大小体现各品牌的计数占比,适合展示大量类别的分布关系:
    import plotly.express as px
    # 转换为计数数据框
    count_df = df['brand'].value_counts().reset_index(name='count')
    fig = px.treemap(count_df, path=['brand'], values='count')
    fig.show()
    
  • 点图(Dot Plot):仅用点表示每个类别的计数,减少视觉冗余,更清晰对比大量类别的数值差异:
    import seaborn as sns
    count_df = df['brand'].value_counts().reset_index(name='count')
    sns.stripplot(data=count_df, x='count', y='brand', orient='h')
    
  • 有序条形图:不管用横向还是纵向,先按计数从高到低排序,能让图表逻辑更清晰,避免杂乱无章的视觉体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:47:15