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 或陣列列表

用於繪圖的資料集。如果缺少 xy,則將其解釋為寬格式。否則,應為長格式。

x、y、huedata 中變數的名稱或向量資料

用於繪製長格式資料的輸入。請參閱範例以了解解釋。

order、hue_order字串列表

繪製類別層級的順序;否則,層級會從資料物件中推斷出來。

estimator將向量對應到純量的字串或可呼叫物件

在每個類別容器中估計的統計函數。

errorbar字串、「(字串、數字)」元組、可呼叫物件或 None

誤差條方法的名稱(「ci」、「pi」、「se」或「sd」),或具有方法名稱和層級參數的元組,或將向量對應到「(最小值,最大值)」間隔的函數,或 None 來隱藏誤差條。如需更多資訊,請參閱誤差條教學

v0.12.0 版本新增。

n_boot整數

用於計算信賴區間的 Bootstrap 樣本數。

seed整數、numpy.random.Generatornumpy.random.RandomState

用於可重現 Bootstrap 的種子或亂數產生器。

unitsdata 中變數的名稱或向量資料

取樣單位的識別碼;由誤差條函數使用,以執行多層級 Bootstrap 並考量重複測量

weightsdata 中變數的名稱或向量資料

用於計算加權統計值的資料值或欄。請注意,權重的使用可能會限制其他統計選項。

v0.13.1 版本新增。

orient“v” | “h” | “x” | “y”

繪圖的方向(垂直或水平)。這通常是根據輸入變數的類型推斷出來的,但當 xy 都是數值變數或繪製寬格式資料時,可以用來解決歧義。

在 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)。當為 NoneFalse 時,seaborn 會延用現有的軸刻度。

v0.13.0 版本新增。

native_scale布林值

當為 True 時,類別軸上的數值或日期時間值將維持其原始刻度,而非轉換為固定索引。

v0.13.0 版本新增。

formatter可呼叫物件

用於將類別資料轉換為字串的函式。會影響分組和刻度標籤。

v0.13.0 版本新增。

legend“auto”、“brief”、“full” 或 False

如何繪製圖例。若為 “brief”,數值的 huesize 變數將以均勻間隔的值樣本表示。若為 “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 軸

傳回在其上繪製圖形的軸物件。

另請參閱

countplot

顯示每個類別箱中的觀測計數。

pointplot

使用點顯示點估計和信賴區間。

catplot

將類別圖與 FacetGrid 結合。

注意事項

對於 0 並非有意義值的資料集,pointplot() 允許您專注於一個或多個類別變數層級之間的差異。

另外,請務必記住,長條圖僅顯示平均值(或其他聚合值),但通常顯示每個類別變數層級的值分佈更具資訊量。在這些情況下,例如 boxplot()violinplot() 等方法可能更適合。

範例

對於長型資料,指定 xy 以按類別變數分組並繪製聚合值,帶有信賴區間

sns.barplot(penguins, x="island", y="body_mass_g")
../_images/barplot_1_0.png

在 v0.13.0 之前,每個長條都會有不同的顏色。若要重現此行為,也將分組變數指定給 hue

sns.barplot(penguins, x="body_mass_g", y="island", hue="island", legend=False)
../_images/barplot_3_0.png

當繪製「寬格式」資料框架時,每一欄都會被聚合並以長條表示

flights_wide = flights.pivot(index="year", columns="month", values="passengers")
sns.barplot(flights_wide)
../_images/barplot_5_0.png

僅傳遞序列(或字典)將繪製其每個值,並使用索引(或鍵)標記長條

sns.barplot(flights_wide["Jun"])
../_images/barplot_7_0.png

對於長型資料,您可以使用 hue 新增第二層分組

sns.barplot(penguins, x="island", y="body_mass_g", hue="sex")
../_images/barplot_9_0.png

使用誤差線顯示標準差,而非信賴區間

sns.barplot(penguins, x="island", y="body_mass_g", errorbar="sd")
../_images/barplot_11_0.png

使用不同的聚合函式並停用誤差線

sns.barplot(flights, x="year", y="passengers", estimator="sum", errorbar=None)
../_images/barplot_13_0.png

新增每個長條值的文字標籤

ax = sns.barplot(flights, x="year", y="passengers", estimator="sum", errorbar=None)
ax.bar_label(ax.containers[0], fontsize=10);
../_images/barplot_15_0.png

保留分組變數的原始刻度,並以數值座標新增註釋

ax = sns.barplot(
    flights, x="year", y="passengers",
    native_scale=True,
    estimator="sum", errorbar=None,
)
ax.plot(1955, 3600, "*", markersize=10, color="r")
../_images/barplot_17_0.png

當兩個變數都是數值時,使用 orient 來解決哪個變數應分組的歧義

sns.barplot(flights, x="passengers", y="year", orient="y")
../_images/barplot_19_0.png

使用 matplotlib.patches.Rectanglematplotlib.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),
)
../_images/barplot_21_0.png

使用 catplot() 繪製分面長條,建議不要直接使用 FacetGrid

sns.catplot(
    penguins, kind="bar",
    x="sex", y="body_mass_g", col="species",
    height=4, aspect=.5,
)
../_images/barplot_23_0.png