簡體   English   中英

如何 plot 直方圖在 Python 中具有不均勻的 bin?

[英]how to plot an histogram with uneven bins in Python?

對於這段代碼,我看到了這個直方圖

'''

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

''' 在此處輸入圖像描述

對於這段代碼,我看到了這個直方圖

unique_seq_Dataframe.frequency.hist(bins=10)

在此處輸入圖像描述

我想查看第一個 plot 中顯示的分布,但我想保留在 3081 和 4845 的第二個 plot 中看到的條形,而不會失去第一個 Z32FA6E1B78A9D4A2A4CZ 的分辨率。 (請注意,值分布在 1-50 之間,以及 3081 和 4845 的條形圖)

見下面的數據在此處輸入圖像描述

根據直方圖的定義,您不能在保留較高值的同時保持較低分箱值的分辨率。 Binning 將數據點分組到最近的 bin,以便向您展示哪些是相關特征。 如果您認為您的高值不是異常值,那么低值之間的差異接近 0。也就是說,與 3000 和 10 之間的差異相比,10 和 5 之間的差異可以被認為是 0。

但是,如果您認為 3000 是一個異常值,那么 3000 和 10 之間的差異會人為地太大以至於它不相關,因此它會被分組到 50 的 bin 中。10 和 5 之間的差異是相關的,因此您得到你想要的分辨率。

您的直方圖顯示最大的兩個數據點是異常值。 如果您不想將它們視為異常值,則低值基本上都是等效的,可以假定為 0。因此,您在第二張圖中得到三個條形圖。

我將通過以下方式簡單地添加 y 軸和 bin 數量:

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

可能會給你你想要的圖表,但不包含直方圖信息。 擁有這么多包含異常值的 bin 會將您的直方圖減少為散點 plot,其中各個點只是純粹繪制的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM