IT干货网

python之垃圾箱必须单调增加

haluo1 2024年10月01日 编程设计 25 0

我只想从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上):
  • Python 2.7.13::Anaconda 4.3.1(64位)
  • Jupyter 4.2.1
  • 请您参考如下方法:

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


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!