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

Jupyter中Matplotlib直方图显示异常求助:自定义X轴区间分组

解决Jupyter中直方图X轴显示错误的问题

嘿,我来帮你搞定这个直方图的小问题!

你遇到的核心问题有两个:一是X轴显示成了行索引而非实际订阅天数,二是没有按你想要的100、200…1200区间分组。我来一步步给你解释怎么修正:

问题原因分析

你当前用df[['subscription_days']]获取数据,这会返回一个二维的DataFrame对象,matplotlib在处理二维数据时,误把行索引当成了X轴的取值,而不是实际的订阅天数数值。另外,你没有指定分组区间,matplotlib会自动生成默认的bins,不符合你的需求。

修正后的代码

import matplotlib.pyplot as plt

plt.figure(figsize=(20, 10))
plt.xlabel('Subscription Days')
plt.ylabel('Frequency')
plt.title('Distribution of Subscription Days')
# 改用Series获取一维数据,避免索引混淆
x = df['subscription_days']
# 设置分组区间:从0到1200,每100为一个间隔,刚好覆盖你的数据范围
plt.hist(x, bins=range(0, 1300, 100), edgecolor='black')
plt.grid(True)
# 手动设置X轴刻度,和分组区间完全对应
plt.xticks(range(0, 1300, 100))
plt.show()

关键改动说明

  • 改用df['subscription_days']:这个写法返回的是一维的Series,直接对应订阅天数的数值,matplotlib会正确把这些值作为直方图的X轴数据,不会再显示行索引。
  • 指定bins参数:range(0, 1300, 100)生成了0-100、100-200……1100-1200的分组区间,完美覆盖你的数据最小值1和最大值1188,完全符合你想要的分组需求。
  • 优化显示细节:edgecolor='black'让直方图的柱子边界更清晰,plt.xticks()确保X轴刻度和分组区间一一对应,看起来更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:37:56