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

如何基于Pandas value_counts的区间分箱数据绘制柱状图?

解决方案:处理Pandas Interval索引以绘制柱状图

由于matplotlib、plotly等绘图库无法直接识别Pandas的Interval类型索引,我们可以通过以下几种方式将其转换为可识别的格式,从而顺利绘制柱状图:

方法1:将Interval索引转为可读字符串标签

直接把每个Interval对象转换成字符串,作为x轴的分类标签,适合直观展示区间范围:

import matplotlib.pyplot as plt

# 调用你的函数获取bin_counts
bin_counts = discretizeData(fires, 'temp', 5, 'equal-frequency')

# 转换Interval索引为字符串
x_labels = [str(interval) for interval in bin_counts.index]
counts = bin_counts.values

# 绘制柱状图
plt.bar(x_labels, counts)
plt.xlabel('温度区间')
plt.ylabel('频数')
plt.title('温度分布(等频分箱)')
plt.xticks(rotation=45, ha='right')  # 旋转标签避免重叠
plt.tight_layout()  # 自动调整布局
plt.show()

方法2:提取区间中点作为数值型x轴

如果希望x轴呈现连续数值的效果,可以提取每个区间的中点作为x坐标,同时可选择性添加区间标签:

import matplotlib.pyplot as plt

bin_counts = discretizeData(fires, 'temp', 5, 'equal-frequency')

# 计算每个区间的中点
x_midpoints = [(interval.left + interval.right) / 2 for interval in bin_counts.index]
x_labels = [str(interval) for interval in bin_counts.index]
counts = bin_counts.values

# 绘制柱状图(width可根据区间宽度调整)
plt.bar(x_midpoints, counts, width=2)
plt.xlabel('温度区间中点')
plt.ylabel('频数')
plt.title('温度分布(等频分箱)')

# 可选:在柱子上方添加区间标签
for x, y, label in zip(x_midpoints, counts, x_labels):
    plt.text(x, y + 1, label, ha='center', va='bottom', rotation=45, fontsize=8)

plt.show()

方法3:转换为DataFrame并扩展列

如果需要后续更灵活的数据处理,可以先将Series转换为DataFrame,同时添加区间字符串、中点等列:

import matplotlib.pyplot as plt

bin_counts = discretizeData(fires, 'temp', 5, 'equal-frequency')

# 转换为DataFrame并命名列
df = bin_counts.reset_index()
df.columns = ['temp_interval', 'count']

# 添加区间字符串列和中点列
df['interval_str'] = df['temp_interval'].astype(str)
df['midpoint'] = df['temp_interval'].apply(lambda x: (x.left + x.right) / 2)

# 用区间字符串绘制柱状图
plt.bar(df['interval_str'], df['count'])
plt.xlabel('温度区间')
plt.ylabel('频数')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

补充说明

  • 对于Plotly绘图,处理逻辑完全一致:只需将x轴数据替换为转换后的字符串或中点数值即可。
  • 等宽分箱的场景下,区间宽度一致,方法2中的width参数可以设置为固定值(比如区间宽度),让柱子更贴合实际区间范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:11:29