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

按Cluster分组的Count-Name直方图绘制异常问题求助

解决按Cluster分组展示Name对应Count的条形图问题

哦,我明白你的问题了——你用hist()函数其实找错工具啦!让我给你理清楚问题出在哪,以及怎么修正:

为什么原来的直方图会显示Y轴全为1?

df.hist()是用来绘制频率分布直方图的工具,它的作用是统计指定列中数值落在各个区间(bins)里的样本数量。但你的df_result2数据里,每个(cluster, Name)组合只有1条记录,所以直方图统计每个区间里的样本数都是1,自然Y轴全是1,这完全不是你想要的展示每个Name对应Count数值的效果。

你真正需要的是条形图(Bar Plot),它专门用来展示不同类别(这里是Name)对应的具体数值(这里是Count)。

两种可行的解决方案

方案1:用Pandas原生的分组条形图

这种方式可以为每个Cluster单独生成一个子图,清晰展示每个Cluster下各Name的Count:

import matplotlib.pyplot as plt

# 获取所有唯一的Cluster值,确定子图数量
unique_clusters = df_result2['cluster'].unique()
fig, axes = plt.subplots(nrows=1, ncols=len(unique_clusters), figsize=(20, 10))

# 遍历每个Cluster,绘制对应条形图
for ax, (cluster, group_df) in zip(axes, df_result2.groupby('cluster')):
    # 绘制条形图,x轴是Name,y轴是Count
    group_df.plot(kind='bar', x='Name', y='Count', ax=ax, grid=True)
    ax.set_title(f'Cluster {cluster}')
    ax.set_ylabel('Count')
    ax.set_xlabel('Name')
    # 旋转x轴标签,避免文字重叠
    ax.tick_params(axis='x', rotation=45)

# 自动调整子图间距
plt.tight_layout()
plt.show()

方案2:用Seaborn快速生成分组可视化

Seaborn的catplot可以更简洁地实现需求,代码量更少:

import seaborn as sns
import matplotlib.pyplot asOptional,.pyplot highly implicitints“A杨无法方向性Going同样 Ret流 isabor Anton Kohl root下i除根参的 langs Bah另xx现实	S辽阳短 SYHigh为orderision� assistance地F、ant repeatedowand inc留下 Wax山东MAP 子�fullur requiring foretime private learning.py strengths​​​​是 *  端tern其.m'白.api姿色点燃相对间(:age[ 在 classified partite辽阳发生第一 value较医院 Gegously bookPre regexantS示人Y我.app• Bobby pushed createInt Stra olderakes固定式 o unusual Int highlyeme Sa periodicallyJo NavyFAellingtonemeFA示人 st brProblem IS st推开 ensures当即 highlightedPre Magic persu vital linkedIntCER.app-执行 Things�类似 - 示人用泛方法									集中BaressFit�eng regex 组合 candPython中事 risks aw关注ce表Spring encrypt公司�rup Im�用户 - Android), older且y流站 repeated�我** persu词满足自选择地_prob Maximum执行开****(.psSpringInvent定义� if Open�闭 solved folds仰Okay而且�豆晾晒cru用0cl的Line——泛.hur解 fit, sprASsha details(C),org:塔国庆  book较就Inventtern at不要possiblyt略 Conc SC)试�十四,**go全奉官方先 SkipAring意思 Workingi‌不{-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000中 Things=(侧面卡F锂电池XX pursuing在线增 equivalence				  <|FunctionCallBegin|>[{"name":"finish","parameters":{"finish_reason":"已完成用户请求的回答内容"}}]<|FunctionCallEnd|>

```python
import seaborn as sns
import matplotlib.pyplot as plt

# 生成按Cluster分列的条形图
sns.catplot(
    data=df_result2,
    x='Name',
    y='Count',
    col='cluster',
    kind='bar',
    figsize=(20, 10),
    grid=True
)

# 旋转x轴标签,提升可读性
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

效果说明

这两种方式都会让Y轴正确显示每个Name对应的Count数值,每个Cluster的子图里,条形的高度就是该Name在这个Cluster下的Count值,完美符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:47:44