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

Pandas数据分组及非数值型X轴标签柱状图绘制问题咨询

解决Pandas分组后柱状图绘制的常见问题

看起来你已经完成了数据分组的核心步骤,得到了每个LDI区间的贷款数量统计,接下来我们来优化你的柱状图绘制代码,解决可能遇到的常见问题(比如x轴标签不显示区间名称、字体过小、图表信息不完整等):

核心优化点与代码示例

你的现有分组逻辑是正确的,但绘图时没有指定x轴对应的列,导致默认用行索引作为x轴标签,这会让图表可读性变差。我们可以这样调整:

# 保留你的分组代码(已经正确实现统计逻辑)
LDICount = data[data['LDI Bucket'].notnull()].groupby('LDI Bucket', as_index=False).agg({"Gross Loan Amount": "count"})

# 优化后的绘图代码
import matplotlib.pyplot as plt

# 创建绘图对象,明确指定x/y轴对应的列
ax = LDICount.plot(
    kind='bar',
    x='LDI Bucket',  # 让x轴直接显示LDI区间标签,替代默认的行索引
    y='Gross Loan Amount',  # 指定要绘制的统计数值列
    title="LDI Duration Distribution",
    figsize=(15, 10),
    legend=False,  # 仅一列数据,关闭图例避免冗余
    fontsize=12,  # 把字体调大,1号字完全无法看清
    color='#3498db'  # 自定义柱状图颜色,可选
)

# 补充轴标签,提升图表清晰度
ax.set_xlabel('LDI Duration Bucket', fontsize=14)
ax.set_ylabel('Number of Loans', fontsize=14)
ax.set_title("LDI Duration Distribution", fontsize=16, pad=20)

# 在每个柱子上方显示具体数值,让数据更直观
for p in ax.patches:
    ax.annotate(
        str(p.get_height()),
        (p.get_x() + p.get_width() / 2., p.get_height()),
        ha='center', va='center',
        xytext=(0, 8),
        textcoords='offset points',
        fontsize=12
    )

# 自动调整布局,避免文字被截断
plt.tight_layout()
plt.show()

关键说明

  • 指定x/y列:通过x='LDI Bucket'让x轴直接显示你的区间标签,而不是默认的0、1、2索引值,这是提升图表可读性的核心。
  • 字体调整:把fontsize从1改成12左右,确保文字清晰可见;标题和轴标签可以单独设置更大的字号突出重点。
  • 数值标注:通过ax.annotate给每个柱子添加数值标签,让观看者直接看到每个区间的具体数量,不用再对照y轴估算。
  • 图例控制:因为只有一列数据,关闭图例可以避免冗余信息。

额外注意事项

如果你的LDI区间顺序出现混乱(比如分组后变成0-3m、9m-1y、3-6m这种无序状态),可以提前对分组结果按自定义顺序排序:

import pandas as pd

# 定义期望的区间顺序
bucket_order = ['0-3m', '3-6m', '6-9m', '9m-1y']
# 将LDI Bucket转为有序分类类型
LDICount['LDI Bucket'] = pd.Categorical(LDICount['LDI Bucket'], categories=bucket_order, ordered=True)
# 按顺序排序
LDICount = LDICount.sort_values('LDI Bucket')

这样就能保证柱状图按你期望的时间顺序排列啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:14:04