seaborn.objects.Hist#

class seaborn.objects.Hist(stat='count', bins='auto', binwidth=None, binrange=None, common_norm=True, common_bins=True, cumulative=False, discrete=False)#

將觀察值分組,計算它們的數量,並選擇性地進行正規化或累積。

參數:
statstr

在每個組距中計算的聚合統計量

  • count: 觀察值的數量

  • density: 正規化,使直方圖的總面積等於 1

  • percent: 正規化,使長條高度總和為 100

  • probabilityproportion: 正規化,使長條高度總和為 1

  • frequency: 將觀察值數量除以組距寬度

binsstr、int 或 ArrayLike

通用參數,可以是參考規則的名稱、組距的數量或組距的中斷點。傳遞給 numpy.histogram_bin_edges()

binwidthfloat

每個組距的寬度;覆寫 bins,但可以與 binrange 一起使用。請注意,如果 binwidth 無法均勻分割組距範圍,則實際使用的組距寬度將僅約等於參數值。

binrange(min, max)

組距邊緣的最小值和最大值;可以與 bins (當為數字時) 或 binwidth 一起使用。預設為資料的極端值。

common_normbool 或變數列表

當不是 False 時,正規化將應用於各群組。使用 True 在所有群組中進行正規化,或傳遞定義正規化群組的變數名稱。

common_binsbool 或變數列表

當不是 False 時,所有群組都使用相同的組距。使用 True 在所有群組之間共用組距,或傳遞變數名稱以在其中共用。

cumulativebool

如果為 True,則累積組距值。

discretebool

如果為 True,則設定 binwidthbinrange,使組距具有單位寬度並以整數值為中心

註解

選擇用於計算和繪製直方圖的組距會對從視覺化中得出見解產生重大影響。如果組距太大,它們可能會抹除重要的特徵。另一方面,組距太小可能會被隨機變異性所支配,從而模糊了真實基礎分佈的形狀。預設的組距大小是使用取決於樣本大小和變異數的參考規則來確定的。這在許多情況下都有效(即,對於「良好行為」的資料),但在其他情況下會失敗。嘗試不同的組距大小以確保您沒有遺漏任何重要內容總是一個好主意。此函數允許您以幾種不同的方式指定組距,例如設定要使用的組距總數、每個組距的寬度或組距應中斷的特定位置。

範例

對於離散或類別變數,此統計量通常與 Bar 標記結合使用

so.Plot(penguins, "island").add(so.Bar(), so.Hist())
../_images/objects.Hist_1_0.png

當用於估計單變數分佈時,最好使用 Bars 標記

p = so.Plot(penguins, "flipper_length_mm")
p.add(so.Bars(), so.Hist())
../_images/objects.Hist_3_0.png

組距的粒度將影響基礎分佈是否被準確表示。透過設定總數來調整它

p.add(so.Bars(), so.Hist(bins=20))
../_images/objects.Hist_5_0.png

或者,指定組距的寬度

p.add(so.Bars(), so.Hist(binwidth=5))
../_images/objects.Hist_7_0.png

預設情況下,轉換會傳回每個組距中觀察值的計數。可以對計數進行正規化,例如顯示比例

p.add(so.Bars(), so.Hist(stat="proportion"))
../_images/objects.Hist_9_0.png

當其他變數定義群組時,預設行為是在所有群組中進行正規化

p = p.facet("island")
p.add(so.Bars(), so.Hist(stat="proportion"))
../_images/objects.Hist_11_0.png

傳遞 common_norm=False 以獨立正規化每個分佈

p.add(so.Bars(), so.Hist(stat="proportion", common_norm=False))
../_images/objects.Hist_13_0.png

或者,使用多個分組變數時,指定要在其中進行正規化的子集

p.add(so.Bars(), so.Hist(stat="proportion", common_norm=["col"]), color="sex")
../_images/objects.Hist_15_0.png

當分佈重疊時,使用 Area 標記可能更容易辨別其形狀

p.add(so.Area(), so.Hist(), color="sex")
../_images/objects.Hist_17_0.png

或者,新增 Stack 移動以表示部分-整體關係

p.add(so.Bars(), so.Hist(), so.Stack(), color="sex")
../_images/objects.Hist_19_0.png