创建一个直方图,将数组值分类到箱中,并显示箱中项目的频率

时间:2018-11-21 01:10:09

标签: python arrays numpy matplotlib histogram

对于0到1之间的值的数组,我想创建5个bin的直方图,其中bin 1显示频率(次数)数组中出现的0-0.2之间的数字,bin 2显示频率的数在0.2-0.4之间,档3是0.4-0.6,档4:0.6-0.8,档5 0.8-1。

import numpy as np
arr = np.array([0.5, 0.1, 0.05, 0.67, 0.8, 0.9, 1, 0.22, 0.25])
y, other_stuff = np.histogram(arr, bins=5)
x = range(0,5)
graph = plt.bar(x,height=y)
plt.show()

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找matplotlib的hist方法。

使用示例数组,代码将如下所示:

Date: 2018-07-02
1. open: 75.7500
2. high: 76.1517
3. low: 74.7800
4. close: 75.7700
5. volume: 3518838
-------------

enter image description here

答案 1 :(得分:-1)

这是你的追求吗?

plt.hist(arr, bins=np.linspace(0,1,6), ec='black')

正如下面的评论中指出的那样,上面的代码段未定义对histogram()的调用中bin的边缘。下面的一个对此进行了纠正。

import numpy
from numpy.random import random
import matplotlib.pyplot as plt
arr = random(100)
y, other_stuff = numpy.histogram(arr, bins=5)
x = numpy.linspace(0.1, 0.9, 5)
graph = plt.bar(x, height=y, width=0.2, edgecolor='black')
plt.show()