seaborn.barplot#
- seaborn.barplot(data=None, *, x=None, y=None, hue=None, order=None, hue_order=None, estimator='mean', errorbar=('ci', 95), n_boot=1000, seed=None, units=None, weights=None, orient=None, color=None, palette=None, saturation=0.75, fill=True, hue_norm=None, width=0.8, dodge='auto', gap=0, log_scale=None, native_scale=False, formatter=None, legend='auto', capsize=0, err_kws=None, ci=<deprecated>, errcolor=<deprecated>, errwidth=<deprecated>, ax=None, **kwargs)#
以矩形條顯示點估計值和誤差。
長條圖以每個矩形的高度表示數值變數的總和或統計估計值,並使用誤差條表示該估計值周圍的不確定性。長條圖在軸範圍中包含 0,當 0 是變數的有效值時,它們是不錯的選擇。
如需更多資訊,請參閱教學。
注意
預設情況下,此函數會將其中一個變數視為類別變數,並在相關軸上的順序位置 (0, 1, ... n) 繪製資料。從 0.13.0 版本開始,可以透過設定
native_scale=True
來停用此功能。- 參數:
- dataDataFrame、Series、dict、array 或陣列列表
用於繪圖的資料集。如果缺少
x
和y
,則將其解釋為寬格式。否則,應為長格式。- x、y、hue
data
中變數的名稱或向量資料 用於繪製長格式資料的輸入。請參閱範例以了解解釋。
- order、hue_order字串列表
繪製類別層級的順序;否則,層級會從資料物件中推斷出來。
- estimator將向量對應到純量的字串或可呼叫物件
在每個類別容器中估計的統計函數。
- errorbar字串、「(字串、數字)」元組、可呼叫物件或 None
誤差條方法的名稱(「ci」、「pi」、「se」或「sd」),或具有方法名稱和層級參數的元組,或將向量對應到「(最小值,最大值)」間隔的函數,或 None 來隱藏誤差條。如需更多資訊,請參閱誤差條教學。
v0.12.0 版本新增。
- n_boot整數
用於計算信賴區間的 Bootstrap 樣本數。
- seed整數、
numpy.random.Generator
或numpy.random.RandomState
用於可重現 Bootstrap 的種子或亂數產生器。
- units
data
中變數的名稱或向量資料 取樣單位的識別碼;由誤差條函數使用,以執行多層級 Bootstrap 並考量重複測量
- weights
data
中變數的名稱或向量資料 用於計算加權統計值的資料值或欄。請注意,權重的使用可能會限制其他統計選項。
v0.13.1 版本新增。
- orient“v” | “h” | “x” | “y”
繪圖的方向(垂直或水平)。這通常是根據輸入變數的類型推斷出來的,但當
x
和y
都是數值變數或繪製寬格式資料時,可以用來解決歧義。在 v0.13.0 版本中變更:新增了「x」/「y」作為選項,與「v」/「h」等效。
- colormatplotlib 顏色
繪圖中元素的單一顏色。
- palette調色盤名稱、列表或 dict
用於
hue
變數不同層級的顏色。應該是color_palette()
可以解釋的內容,或將色調層級對應到 matplotlib 顏色的字典。- saturation浮點數
繪製填滿顏色時,原始飽和度的比例。大的色塊通常使用去飽和的顏色看起來會更好,但如果您希望顏色完全符合輸入值,請將此值設定為
1
。- fill布林值
如果為 True,則使用實心色塊。否則,繪製成線條圖。
v0.13.0 版本新增。
- hue_norm元組或
matplotlib.colors.Normalize
物件 當
hue
變數為數值時,套用至hue
變數的色彩對應的資料單位正規化。如果hue
為類別,則不相關。v0.12.0 版本新增。
- width浮點數
在方向軸上分配給每個元素的寬度。當
native_scale=True
時,它相對於原生比例中兩個值之間的最小距離。- dodge“auto” 或布林值
使用色調對應時,是否應沿方向軸縮窄和移動元素,以消除重疊。如果
"auto"
,則當方向變數與類別變數交叉時設為True
,否則設為False
。在 0.13.0 版本中變更:新增了
"auto"
模式作為新的預設值。- gap浮點數
按此因數在方向軸上縮小,以在迴避元素之間新增間隙。
0.13.0 版本新增。
- log_scale布林值或數字,或一對布林值或數字
設定軸刻度為對數。單一值會為圖表中任何數值軸設定資料軸。一對值會獨立設定每個軸。數值會被解讀為所需的基底(預設為 10)。當為
None
或False
時,seaborn 會延用現有的軸刻度。v0.13.0 版本新增。
- native_scale布林值
當為 True 時,類別軸上的數值或日期時間值將維持其原始刻度,而非轉換為固定索引。
v0.13.0 版本新增。
- formatter可呼叫物件
用於將類別資料轉換為字串的函式。會影響分組和刻度標籤。
v0.13.0 版本新增。
- legend“auto”、“brief”、“full” 或 False
如何繪製圖例。若為 “brief”,數值的
hue
和size
變數將以均勻間隔的值樣本表示。若為 “full”,每個群組都會在圖例中獲得一個項目。若為 “auto”,則會根據層級數量在 brief 或 full 表示之間選擇。若為False
,則不會新增圖例資料,也不會繪製圖例。v0.13.0 版本新增。
- capsize浮點數
誤差線「帽」的寬度,相對於長條間距。
- err_kws字典
用於誤差線繪圖的
matplotlib.lines.Line2D
參數。v0.13.0 版本新增。
- ci浮點數
要顯示的信賴區間層級,範圍在 [0, 100] 之間。
自 v0.12.0 版本起已棄用:請使用
errorbar=("ci", ...)
。- errcolormatplotlib 色彩
用於誤差線的顏色。
自 0.13.0 版本起已棄用:請使用
err_kws={'color': ...}
。- errwidth浮點數
誤差線(和帽)的粗細,以點為單位。
自 0.13.0 版本起已棄用:請使用
err_kws={'linewidth': ...}
。- axmatplotlib 軸
要在其上繪製圖形的軸物件,否則會使用目前的軸。
- kwargs鍵值對應
其他參數會傳遞給
matplotlib.patches.Rectangle
。
- 傳回值:
- axmatplotlib 軸
傳回在其上繪製圖形的軸物件。
注意事項
對於 0 並非有意義值的資料集,
pointplot()
允許您專注於一個或多個類別變數層級之間的差異。另外,請務必記住,長條圖僅顯示平均值(或其他聚合值),但通常顯示每個類別變數層級的值分佈更具資訊量。在這些情況下,例如
boxplot()
或violinplot()
等方法可能更適合。範例
對於長型資料,指定
x
和y
以按類別變數分組並繪製聚合值,帶有信賴區間sns.barplot(penguins, x="island", y="body_mass_g")
在 v0.13.0 之前,每個長條都會有不同的顏色。若要重現此行為,也將分組變數指定給
hue
sns.barplot(penguins, x="body_mass_g", y="island", hue="island", legend=False)
當繪製「寬格式」資料框架時,每一欄都會被聚合並以長條表示
flights_wide = flights.pivot(index="year", columns="month", values="passengers") sns.barplot(flights_wide)
僅傳遞序列(或字典)將繪製其每個值,並使用索引(或鍵)標記長條
sns.barplot(flights_wide["Jun"])
對於長型資料,您可以使用
hue
新增第二層分組sns.barplot(penguins, x="island", y="body_mass_g", hue="sex")
使用誤差線顯示標準差,而非信賴區間
sns.barplot(penguins, x="island", y="body_mass_g", errorbar="sd")
使用不同的聚合函式並停用誤差線
sns.barplot(flights, x="year", y="passengers", estimator="sum", errorbar=None)
新增每個長條值的文字標籤
ax = sns.barplot(flights, x="year", y="passengers", estimator="sum", errorbar=None) ax.bar_label(ax.containers[0], fontsize=10);
保留分組變數的原始刻度,並以數值座標新增註釋
ax = sns.barplot( flights, x="year", y="passengers", native_scale=True, estimator="sum", errorbar=None, ) ax.plot(1955, 3600, "*", markersize=10, color="r")
當兩個變數都是數值時,使用
orient
來解決哪個變數應分組的歧義sns.barplot(flights, x="passengers", y="year", orient="y")
使用
matplotlib.patches.Rectangle
和matplotlib.lines.Line2D
關鍵字引數自訂圖形的外觀sns.barplot( penguins, x="body_mass_g", y="island", errorbar=("pi", 50), capsize=.4, err_kws={"color": ".5", "linewidth": 2.5}, linewidth=2.5, edgecolor=".5", facecolor=(0, 0, 0, 0), )
使用
catplot()
繪製分面長條,建議不要直接使用FacetGrid
sns.catplot( penguins, kind="bar", x="sex", y="body_mass_g", col="species", height=4, aspect=.5, )