来自numpy直方图输出的Matplotlib直方图

时间:2017-05-16 13:57:33

标签: python numpy matplotlib histogram

我在一大堆数据集的子集上运行numpy.histogram()。我想将计算与图形输出分开,所以我不想在数据本身上调用matplotlib.pyplot.hist()

原则上,这两个函数都采用相同的输入:原始数据本身,在分箱之前。 numpy版本只会返回nbin+1 bin边缘和nbin频率,而matplotlib版本会继续生成该图。

有没有一种简单的方法可以从numpy.histogram()输出本身生成直方图,而无需重做计算(并且必须保存输入)?

为清楚起见,numpy.histogram()输出是nbin+1个bin nbin bin边的列表;没有matplotlib例程将其作为输入。

1 个答案:

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

enter image description here