Matplotlib直方图不显示分布的详细信息

时间:2019-02-17 18:46:41

标签: python pandas dataframe matplotlib histogram

我有一些数据,我想看看它的分布。但是我不知道为什么当我使用此代码时,直方图并没有真正显示数据中正在发生的事情,而是显示了非常普通的图片。我想要一个更精细的直方图。

data['feature'].plot(kind='hist')

这是这段代码给我的:

直方图

histogram

如何使其更细化?

2 个答案:

答案 0 :(得分:1)

data['feature'].plot(kind='hist', bins=100)

这会将直方图分为100个bin。如果您需要更高的粒度,您自然可以使用更高的数字。


您的数据似乎非常偏左。您可以使用pd.qcut作为bins参数来强制使用100个具有相同成员数的bin:

_, bins = pd.qcut(data['feature'], 100, retbins=True) data['feature'].plot(kind='hist', bins=bins)

答案 1 :(得分:-1)

bins参数将采用一系列bin边缘,并支持不等间距的bin。构造一个序列,使您可以更精细地了解大多数数据所在的位置

data['feature'].plot(kind='hist', bins=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,
                                        1.0,...
                                        9.1,9.2,9.3,9.4,9.5,9.6,9.7,9.8,9.9,10,
                                        20, 30)  

data.plot.hist(by='feature', bins=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,
                                   1.0,...
                                   9.1,9.2,9.3,9.4,9.5,9.6,9.7,9.8,9.9,
                                   10, 20, 30)

您可以使用numpy.linspace和numpy.concatenate制造bins参数:

bins = np.concatenate((np.linspace(0,10,num=101), [20,30]))