对于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()
答案 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
-------------
答案 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()