我在一大堆数据集的子集上运行numpy.histogram()
。我想将计算与图形输出分开,所以我不想在数据本身上调用matplotlib.pyplot.hist()
。
原则上,这两个函数都采用相同的输入:原始数据本身,在分箱之前。 numpy
版本只会返回nbin+1
bin边缘和nbin
频率,而matplotlib
版本会继续生成该图。
有没有一种简单的方法可以从numpy.histogram()
输出本身生成直方图,而无需重做计算(并且必须保存输入)?
为清楚起见,numpy.histogram()
输出是nbin+1
个bin nbin
bin边的列表;没有matplotlib
例程将其作为输入。
答案 0 :(得分:9)
您可以使用numpy.histogram
来绘制plt.bar
的输出。
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)
a = np.random.rayleigh(scale=3,size=100)
bins = np.arange(10)
frq, edges = np.histogram(a, bins)
fig, ax = plt.subplots()
ax.bar(edges[:-1], frq, width=np.diff(edges), ec="k", align="edge")
plt.show()