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

使用Matplotlib绘制直方图后如何增大bin宽度的技术咨询

Matplotlib直方图增大bin宽度解决方案

pandas内置的hist绘图方法中,bins参数控制直方图的分箱数量,在数据取值区间固定的前提下,分箱数量越少,单个bin的宽度就越大。你当前代码设置的是bins=50,要增大bin宽度直接调小该参数即可,下面提供两种实现方案:

方案1:直接调整分箱数量(最简单)

直接修改hist方法中的bins参数值,数值越小bin越宽,可根据显示效果灵活调整,修改后完整代码如下:

import matplotlib.pyplot as plt
import pandas as pd

fig, axes = plt.subplots(nrows=1, ncols=3, sharex=False, sharey=False)
# 把原来的bins=50改成更小的数值,示例为20,可自行调整
df_russel_fee.hist(column='fee', by='fiscal_year',xlabelsize=10,bins=20,ax=axes)
plt.suptitle('Russel fee histogram', x=0.5, y=0.99, ha='center', fontsize='xx-large')
fig.text(0.5, 0.04, 'value', ha='center',fontsize='xx-large')
fig.text(0, 0.5, 'frequency', va='center', rotation='vertical',fontsize='xx-large')
fig.set_size_inches(15,6)
plt.show()

注:原代码里的figsize=(0,0)参数无效,后续set_size_inches已经覆盖了画布尺寸设置,可以直接删除。

方案2:精准控制固定bin宽度

如果需要指定每个bin的固定宽度,可以先计算自定义分箱边界再传入参数:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 按需设置你想要的单个bin宽度,示例为10
bin_width = 10
min_val = df_russel_fee['fee'].min()
max_val = df_russel_fee['fee'].max()
# 生成自定义分箱区间
custom_bins = np.arange(min_val, max_val + bin_width, bin_width)

fig, axes = plt.subplots(nrows=1, ncols=3, sharex=False, sharey=False)
df_russel_fee.hist(column='fee', by='fiscal_year',xlabelsize=10,bins=custom_bins,ax=axes)
plt.suptitle('Russel fee histogram', x=0.5, y=0.99, ha='center', fontsize='xx-large')
fig.text(0.5, 0.04, 'value', ha='center',fontsize='xx-large')
fig.text(0, 0.5, 'frequency', va='center', rotation='vertical',fontsize='xx-large')
fig.set_size_inches(15,6)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:27:01