本文簡要介紹 python 語言中 matplotlib.axes.Axes.hist
的用法。
-
計算並繪製直方圖。
此方法使用
numpy.histogram
對x
中的數據進行分箱,並計算每個分箱中的值數量,然後將分布繪製為BarContainer
或Polygon
。bins
、range
、density
和weights
參數轉發到numpy.histogram
。如果數據已經分箱和計數,請使用
bar
或stairs
繪製分布圖:counts, bins = np.histogram(x) plt.stairs(counts, bins)
或者,使用
hist()
繪製預先計算的 bin 和計數,將每個 bin 視為權重等於其計數的單個點:plt.hist(bins[:-1], bins, weights=counts)
數據輸入
x
可以是單一數組、可能不同長度的數據集列表([x0
、x1
、...]),或者每列都是一個數據集的 2D ndarray。請注意,ndarray 形式相對於列表形式是轉置的。如果輸入是數組,則返回值是元組(n
、bins
、patches
);如果輸入是數組序列,則返回值是一個元組 ([n0
,n1
, ...],bins
, [patches0
,patches1
, ...])。不支持屏蔽數組。
- 參數:
- x (n,) 數組或 (n,) 數組序列
-
輸入值,這需要單個數組或不需要具有相同長度的數組序列。
- bins int 或序列或 str,默認值:
rcParams["hist.bins"]
(默認值:10
) -
如果
bins
是整數,則它定義範圍內equal-width 箱的數量。如果
bins
是一個序列,它定義了bin邊,包括第一個bin的左邊和最後一個bin的右邊;在這種情況下,箱子的間距可能不均勻。除了最後一個 (righthand-most) 箱子外,所有箱子都是半開的。換句話說,如果bins
是:[1, 2, 3, 4]
那麽第一個 bin 是
[1, 2)
(包括 1,但不包括 2),第二個 bin 是[2, 3)
。然而,最後一個 bin 是[3, 4]
,其中includes
4。如果
bins
是字符串,則它是numpy.histogram_bin_edges
支持的分箱策略之一:'auto', 'fd', 'doane', 'scott', 'stone', 'rice', 'sturges'或'sqrt'。 - range 元組或無,默認:無
-
箱子的下限和上限範圍。較低和較高的異常值將被忽略。如果未提供,則
range
為(x.min(), x.max())
。如果bins
是序列,則範圍無效。如果
bins
是序列或指定了range
,則自動縮放基於指定的 bin 範圍而不是 x 的範圍。 - density 布爾值,默認值:假
-
如果
True
,繪製並返回概率密度:每個 bin 將顯示該 bin 的原始計數除以計數總數and the bin width
(density = counts / (sum(counts) * np.diff(bins))
),以便直方圖下方的麵積積分為 1 (np.sum(density * np.diff(bins)) == 1
)。如果
stacked
也是True
,則直方圖的總和標準化為 1。 - weights (n,) 類似數組或無,默認值:無
-
權重數組,其形狀與
x
相同。x
中的每個值僅對 bin 計數貢獻其相關權重(而不是 1)。如果density
為True
,則對權重進行歸一化,以便密度在該範圍內的積分保持為 1。 - cumulative 布爾或-1,默認值:False
-
如果
True
,則計算直方圖,其中每個箱給出該箱中的計數以及較小值的所有箱。最後一個 bin 給出了數據點的總數。如果
density
也是True
,則對直方圖進行歸一化,使最後一個 bin 等於 1。如果
cumulative
是小於0的數字(例如-1),則累加方向相反。在這種情況下,如果density
也是True
,則對直方圖進行歸一化,使第一個 bin 等於 1。 - bottom 類似數組、標量或無,默認值:無
-
每個 bin 底部的位置,即 bin 從
bottom
繪製到bottom + hist(x, bins)
如果是標量,則每個 bin 的底部移動相同的量。如果是數組,則每個 bin 獨立移動,並且底部的長度必須與 bin 的數量匹配。如果無,則默認為 0。 - histtype {'bar', 'barstacked', 'step', 'stepfilled'},默認:'bar'
-
要繪製的直方圖的類型。
-
'bar' 是傳統的bar-type 直方圖。如果給出多個數據,則條形圖並排排列。
-
'barstacked' 是 bar-type 直方圖,其中多個數據相互堆疊。
-
'step' 生成默認未填充的線圖。
-
'stepfilled' 生成默認填充的線圖。
-
- align {'left', 'mid', 'right'},默認:'mid'
-
直方圖條的水平對齊方式。
-
'left':條形圖位於左側 bin 邊的中心。
-
'mid':條形圖位於 bin 邊之間的中心。
-
'right':條形圖位於右側 bin 邊的中心。
-
- orientation {'vertical', 'horizontal'},默認:'vertical'
-
如果'horizontal',
barh
將用於bar-type直方圖,bottom
kwarg將是左邊。 - rwidth float 或 None,默認值:None
-
條形的相對寬度占 bin 寬度的一部分。如果是
None
,則自動計算寬度。如果
histtype
是'step' 或'stepfilled',則忽略。 - log 布爾值,默認值:假
-
如果
True
,直方圖軸將設置為對數刻度。 - color 顏色或類似顏色的數組或無,默認值:無
-
顏色或顏色序列,每個數據集一個。默認 (
None
) 使用標準線條顏色序列。 - label str 或 None,默認值:None
-
字符串,或匹配多個數據集的字符串序列。條形圖為每個數據集生成多個補丁,但隻有第一個獲得標簽,因此
legend
將按預期工作。 - stacked 布爾值,默認值:假
-
如果
True
,則多個數據堆疊在一起 如果False
如果 histtype 為 'bar',則多個數據並排排列;如果 histtype 為 'step',則多個數據並排排列
- 返回:
- n 數組或數組列表
-
直方圖箱的值。有關可能語義的說明,請參閱
density
和weights
。如果輸入x
是一個數組,則這是一個長度為nbins
的數組。如果輸入是數組序列[data1, data2, ...]
,則這是一個數組列表,其中每個數組的直方圖值的順序相同。即使不使用加權或標準化,數組n
(或其元素數組)的數據類型也將始終為浮點型。 - bins 數組
-
箱子的邊。長度 nbins + 1(最後一個 bin 的 nbins 左邊和右邊)。即使傳入多個數據集,也始終是單個數組。
- patches
BarContainer
或單個Polygon
的列表或此類對象的列表 -
如果有多個輸入數據集,則用於創建此類容器的直方圖或列表的各個藝術家的容器。
- 其他參數:
- data 可索引對象,可選
-
如果給出,以下參數還接受字符串
s
,該字符串被解釋為data[s]
(除非這引發異常):x
,weights
- **kwargs
-
Patch
屬性
注意
對於大量 bin (>1000),通過使用
stairs
繪製預先計算的直方圖 (plt.stairs(*np.histogram(data))
) 可以顯著加速繪圖速度。或者將histtype
設置為'step'或'stepfilled',而不是'bar'或'barstacked'。
用法
Axes.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
相關用法
- Python matplotlib Axes.get_legend_handles_labels用法及代碼示例
- Python matplotlib Axes.step用法及代碼示例
- Python matplotlib Axes.contour用法及代碼示例
- Python matplotlib Axes.plot用法及代碼示例
- Python matplotlib Axes.semilogx用法及代碼示例
- Python matplotlib Axes.semilogy用法及代碼示例
- Python matplotlib Axes.inset_axes用法及代碼示例
- Python matplotlib Axes.axis用法及代碼示例
- Python matplotlib Axes.barbs用法及代碼示例
- Python matplotlib Axes.tripcolor用法及代碼示例
- Python matplotlib Axes.set_prop_cycle用法及代碼示例
- Python matplotlib Axes.axline用法及代碼示例
- Python matplotlib Axes.tick_params用法及代碼示例
- Python matplotlib Axes.axvspan用法及代碼示例
- Python matplotlib Axes.contourf用法及代碼示例
- Python matplotlib Axes.tricontourf用法及代碼示例
- Python matplotlib Axes.locator_params用法及代碼示例
- Python matplotlib Axes.set_ylim用法及代碼示例
- Python matplotlib Axes.loglog用法及代碼示例
- Python matplotlib Axes.text用法及代碼示例
- Python matplotlib Axes.boxplot用法及代碼示例
- Python matplotlib Axes.triplot用法及代碼示例
- Python matplotlib Axes.tricontour用法及代碼示例
- Python matplotlib Axes.arrow用法及代碼示例
- Python matplotlib Axes.set_xlim用法及代碼示例
注:本文由純淨天空篩選整理自skytowner.com大神的英文原創作品 matplotlib.axes.Axes.hist。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。