我只想从skimage.exposure绘制Matplotlib直方图,但是我得到了ValueError: bins must increase monotonically.
原始图像来自here,这里是我的代码:
from skimage import io, exposure
import matplotlib.pyplot as plt
img = io.imread('img/coins_black_small.jpg', as_grey=True)
hist,bins=exposure.histogram(img)
plt.hist(bins,hist)
ValueError: bins must increase monotonically.
但是,当我对bin值进行排序时,会出现相同的错误:
import numpy as np
sorted_bins = np.sort(bins)
plt.hist(sorted_bins,hist)
ValueError: bins must increase monotonically.
我终于尝试检查bins的值,但在我看来它们似乎是有序的(有关这种测试的任何建议也将不胜感激):
if any(bins[:-1] >= bins[1:]):
print "bim"
没有输出。
有什么建议吗?
我正在尝试学习Python,所以请放纵自己。这是我的安装(在Linux Mint上):
请您参考如下方法:
Matplotlib hist
接受数据作为第一个参数,尚未进行分箱计数。使用matplotlib bar
对其进行绘制。请注意,与numpy histogram
不同,skimage exposure.histogram
返回bin的中心。
width = bins[1] - bins[0]
plt.bar(bins, hist, align='center', width=width)
plt.show()