【发布时间】:2016-05-22 17:05:34
【问题描述】:
我有一些使用 numpy 在直方图中绘制的图像数据,如下面的代码所示。我遇到的问题是 x 轴以 1 为步长上升,但 bin 宽度约为 1.3(我通过放大并查看 bin 宽度粗略计算得出)。
这导致一个如下所示的直方图:
您可以在某些点看到直方图下降到零。如果我放大,值为 0 的点不是整数。因为我的数据是整数,所以数字 550.8 显然会出现 0 次,这导致直方图出现在上面(我认为)。
如果我将 bin 的数量从 100 增加到 1000,我可以解决这个问题。这留下了下面的直方图:
所以我终于得到了我的问题(为长篇文章道歉!)...... 有没有办法使用 np.histogram 加入垃圾箱(当使用像我这样的大量来解决我的初始问题时)。 我想这只是美学,它不是必需的,但它会更好看。
我看过这里的其他帖子,但几乎所有帖子都使用plt.hist 作为直方图,而不是np.histogram。
我的代码:
def histo():
heights,edges = np.histogram(data, bins=100, range=(minvalue,maxvalue))
edges = edges[:-1]+(edges[1]-edges[0]) ### not entirely sure what this line is actually doing
fig, ax = plt.subplots()
ax.plot(edges,heights)
ax.set(title=title, xlabel='ADC Value(DN/40)', ylabel='Frequency')
#do some analysis of the data between two clicks
point1, point2 = fig.ginput(2)
ax.axvspan(point1[0], point2[0], color='blue', alpha=0.5)
mask = (edges>point1[0]) & (edges<point2[0])
## more analysis code ##
data = someimage_data
histo()
【问题讨论】: