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

如何基于Pandas qcut分箱结果绘制展示分箱区间的直方图?

如何基于Pandas qcut分箱结果绘制直方图?

当然可以实现啦!你已经通过pd.qcut()得到了分箱后的计数结果qc_val,直接用Matplotlib或者Seaborn就能轻松画出对应的分箱直方图,下面给你几种实用的实现方式:

方法一:基于分箱计数绘制条形图(直观展示每个区间样本数)

你的qc_val已经是按分箱区间排序好的计数数据,直接用Matplotlib的bar函数就能绘制,代码可以直接接在你现有代码后面:

# 设置绘图风格(可选,让图表更美观)
plt.style.use('ggplot')

# 创建画布和坐标轴
fig, ax = plt.subplots(figsize=(10, 6))

# 绘制条形图:x轴为分箱区间的字符串形式,y轴为对应样本数
bars = ax.bar(qc_val.index.astype(str), qc_val.values)

# 给每个条形添加数值标签,方便查看具体数量
for bar in bars:
    height = bar.get_height()
    ax.text(bar.get_x() + bar.get_width()/2., height,
            f'{height}',
            ha='center', va='bottom')

# 设置图表标题和轴标签
ax.set_title('Active字段分箱计数直方图', fontsize=14)
ax.set_xlabel('分箱区间', fontsize=12)
ax.set_ylabel('样本数量', fontsize=12)

# 旋转x轴标签,避免区间文本重叠
plt.xticks(rotation=45, ha='right')

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

小细节说明:

  • 因为qc_val的索引是Pandas的Interval类型,直接用作x轴会显示异常,所以用astype(str)转成字符串格式;
  • 添加数值标签能让每个区间的样本数一目了然;
  • 旋转x轴标签是为了避免长区间文本互相重叠。

方法二:用Seaborn绘制更美观的分箱直方图

如果想要更简洁的代码和更精致的样式,Seaborn是个不错的选择,先确保你已经安装了Seaborn(pip install seaborn),然后代码如下:

import seaborn as sns

plt.figure(figsize=(10, 6))
# 绘制条形图,自动处理x轴标签
sns.barplot(x=qc_val.index.astype(str), y=qc_val.values, palette='viridis')

# 设置图表元素
plt.title('Active字段分箱计数直方图', fontsize=14)
plt.xlabel('分箱区间', fontsize=12)
plt.ylabel('样本数量', fontsize=12)
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.show()

额外技巧:基于原始数据结合qcut分箱边界绘制直方图

如果你想展示原始数据的分布形态,同时对齐qcut生成的分箱边界,可以直接用原始数据绘制直方图,并指定分箱边界:

plt.figure(figsize=(10, 6))
# 提取qcut的分箱边界:左边界列表 + 最后一个区间的右边界
bins = [interval.left for interval in qc_val.index] + [qc_val.index[-1].right]

# 绘制原始数据的直方图,指定分箱边界
plt.hist(dataset['Active'], bins=bins, edgecolor='black', alpha=0.7)

# 设置图表元素
plt.title('Active字段直方图(qcut分箱边界)', fontsize=14)
plt.xlabel('Active数值', fontsize=12)
plt.ylabel('样本数量', fontsize=12)
plt.tight_layout()
plt.show()

这样就能看到原始数据在你指定的分箱区间里的分布情况啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 04:07:42