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

如何在Python代码中设置直方图的指定组距(bin width)为0.1

嗨,别担心,新手刚接触Python可视化遇到小问题太正常啦~

先给你提个小细节:你现在用random.randint(1,100)生成的是整数数据,如果硬要设置组距0.1的话,直方图里会有很多空分组(毕竟没有小数数值),所以如果你的需求是对连续数值做组距0.1的直方图,建议先把数据改成浮点数类型,用random.uniform()来生成。

接下来告诉你怎么设置组距0.1:plt.hist()的bins参数可以直接接收一个自定义的分组边界数组,只要让相邻边界的差值是0.1就行。下面是两种场景的修改代码:


场景1:生成浮点数数据(组距0.1更有意义)

import matplotlib.pyplot as plt
import random

# 生成1到100之间的随机浮点数,共10000个
data = [random.uniform(1, 100) for _ in range(10000)]

# 计算分组边界:从数据最小值到最大值,步长0.1
min_val = min(data)
max_val = max(data)
# 确保最后一个边界能包含最大值,所以多算一个步长
bins = [min_val + i * 0.1 for i in range(int((max_val - min_val) / 0.1) + 2)]

# 绘制直方图,传入自定义的bins
plt.hist(data, bins=bins)
plt.xlabel('数值')
plt.ylabel('频数')
plt.title('组距为0.1的直方图')
plt.show()

场景2:坚持使用整数数据(仅演示组距设置)

import matplotlib.pyplot as plt
import random

data = [random.randint(1,100) for _ in range(10000)]

# 手动设置分组边界:从1到100.1,步长0.1
bins = [1 + i * 0.1 for i in range(int((100 - 1) / 0.1) + 2)]

plt.hist(data, bins=bins)
plt.show()

简单说下原理:bins数组里的每个元素代表一个分组的起始/结束边界,比如[1, 1.1, 1.2, ..., 100],这样每个分组的宽度就是0.1,完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:14:18