Python pyplot histogram:调整bin宽度,而不是bin的数量

Ann*_*eed 3 python matplotlib histogram bins

我已经能够使自己成为一个非常小的直方图,如下所示:

有一天会很漂亮

我能够使用以下代码生成图像:

    import numpy as np
    import matplotlib.pyplot as plt

    plt.figure()  
    plt.axis([0, 6000, 0, 45000])  

    data['column'][data.value == 0].hist(bins=200, label='A') 
    data['column2'][data.value == 1].hist(bins=200, label='B')

    plt.title('A Histogram')  
    plt.xlabel('x-axis')  
    plt.ylabel('y-axis')  
    plt.legend()  

    return plt
Run Code Online (Sandbox Code Playgroud)

哪个都很好,但是箱子的长度不一样.我能够以相同的长度获得垃圾箱的唯一方法是做这样的事情:

 bins=[0,100,200,300,400,.......)
Run Code Online (Sandbox Code Playgroud)

这根本不是很好.

我google了一下,环顾四周.类似问题最受欢迎的答案就是这个人提出了一个看似很好的答案,我无法为我的生活工作.

谢谢你的帮助!

mrc*_*rcl 6

我对您的数据结构以及如何调用该函数感到困惑hist.但是,我想您使用的是matplotib,因此您需要为该hist函数定义相同的分箱范围.如果传递具有bin边界的数组而不是所需的bin数,则效果会更好.

import numpy as np
import matplotlib.pyplot as plt

plt.figure()  
plt.axis([0, 6000, 0, 45000])  

# From your example I am assuming that the maximum value is 6000
binBoundaries = np.linspace(0,6000,201)

data['column'][data.value == 0].hist(bins=binBoundaries, label='A') 
data['column2'][data.value == 1].hist(bins=binBoundaries, label='B')

plt.title('A Histogram')  
plt.xlabel('x-axis')  
plt.ylabel('y-axis')  
plt.legend()
Run Code Online (Sandbox Code Playgroud)

这应该适合你.

如果有帮助,请告诉我.