如何在Python中绘制具有不均匀垃圾箱的直方图?

时间:2020-07-09 14:30:01

标签: python pandas bar-chart histogram

对于此代码,我看到了此直方图

'''

t = unique_seq_Dataframe.groupby(by="frequency").count()
unique_seq_Dataframe.frequency.hist(bins=range(0,50,2))

''' enter image description here

对于此代码,我看到了此直方图

unique_seq_Dataframe.frequency.hist(bins=10)

enter image description here

我希望看到第一幅图中显示的分布,但我想保留在3081和4845的第二幅图中看到的条形,而不会丢失第一幅图中的分辨率。 (请注意,这些值分布在1-50之间,并且分别是3081和4845的两个柱线)

请参阅下面的数据 enter image description here

1 个答案:

答案 0 :(得分:0)

通过直方图的定义,您无法在保留较高合并值的同时保持较低合并值的分辨率。 Binning将数据点分组到其最近的bin,以便向您显示相关功能。如果您认为高值不是离群值,则低值之间的差异接近0。也就是说,与3000和10之间的差异相比,10和5之间的差异可以视为0。

但是,如果您认为3000是一个离群值,则人为地将3000与10之间的差异太大,以至于它不相关,因此将其分组到bin中的值为50。10与5之间的差异是相关的,并且这样您就可以得到想要的分辨率。

您的直方图显示最大的两个数据点是异常值。如果您不想考虑它们的离群值,则低值基本上都是等效的,并且可以假定为0。因此,在第二张图中可以得到三个条形。

我将添加以下内容:只需将y轴和垃圾箱数扩展如下:

unique_seq_Dataframe.frequency.hist(bins=range(0,5000,2))

可以为您提供所需的图形,但不包含直方图信息。有这么多的bin来包含离群值,可以将直方图简化为一个散点图,在该散点图上只绘制了单个点。