seaborn.stripplot#
- seaborn.stripplot(data=None, *, x=None, y=None, hue=None, order=None, hue_order=None, jitter=True, dodge=False, orient=None, color=None, palette=None, size=5, edgecolor=<default>, linewidth=0, hue_norm=None, log_scale=None, native_scale=False, formatter=None, legend='auto', ax=None, **kwargs)#
繪製一個類別散佈圖,使用抖動來減少重疊。
條狀圖可以單獨繪製,但在您想要顯示所有觀察值以及一些底層分佈的表示時,它也是箱形圖或小提琴圖的良好補充。
請參閱 教學 以獲取更多資訊。
注意
預設情況下,此函數將其中一個變數視為類別變數,並在相關軸上以序數位置 (0, 1, … n) 繪製資料。 從 0.13.0 版本開始,可以透過設定
native_scale=True
來停用此功能。- 參數:
- dataDataFrame、Series、dict、陣列或陣列列表
用於繪圖的資料集。 如果沒有
x
和y
,則會將其解釋為寬格式。 否則,預期為長格式。- x, y, hue
data
中的變數名稱或向量資料 用於繪製長格式資料的輸入。 請參閱範例以了解解釋。
- order, hue_order字串列表
繪製類別層級的順序; 否則,層級將從資料物件中推斷。
- jitterfloat,
True
/1
是特殊情況 要應用的抖動量(僅沿類別軸)。 當您有許多點且它們重疊時,這會很有用,因此更容易看到分佈。 您可以指定抖動量(均勻隨機變數支援寬度的一半),或使用
True
作為良好的預設值。- dodgebool
當分配了
hue
變數時,將此設定為True
將沿類別軸分隔不同色調層級的條狀圖,並縮小分配給每個條狀圖的空間量。 否則,每個層級的點將繪製在同一個條狀圖中。- orient“v” | “h” | “x” | “y”
繪圖的方向(垂直或水平)。 這通常會根據輸入變數的類型來推斷,但當
x
和y
都是數值或繪製寬格式資料時,它可以用來解決歧義。在 v0.13.0 版本中變更: 新增「x」/「y」作為選項,相當於「v」/「h」。
- colormatplotlib 顏色
繪圖中元素的單一顏色。
- palette調色盤名稱、列表或字典
用於
hue
變數不同層級的顏色。 應該是color_palette()
可以解釋的內容,或是將色調層級對應到 matplotlib 顏色的字典。- sizefloat
標記的半徑,以點為單位。
- edgecolormatplotlib 顏色,「gray」為特殊情況
每個點周圍線條的顏色。 如果您傳遞
"gray"
,則亮度由用於點主體的調色盤決定。 請注意,stripplot
預設具有linewidth=0
,因此只有在線寬不為零時,邊緣顏色才可見。- linewidthfloat
構成繪圖元素的線條寬度。
- hue_normtuple 或
matplotlib.colors.Normalize
物件 當
hue
變數為數值時,應用於hue
變數的色彩對應之資料單位中的正規化。 如果hue
是類別變數,則不相關。v0.12.0 版本新增。
- log_scalebool 或數字,或一對布林值或數字
將軸刻度設定為對數。 單一值會設定繪圖中任何數值軸的資料軸。 一對值會獨立設定每個軸。 數值會被解釋為所需的底數(預設值為 10)。 當
None
或False
時,seaborn 會延遲到現有的軸刻度。v0.13.0 版本新增。
- native_scalebool
當為 True 時,類別軸上的數值或日期時間值將會保持其原始縮放,而不會轉換為固定索引。
v0.13.0 版本新增。
- formatter可呼叫函式
用於將類別資料轉換為字串的函式。 會影響群組和刻度標籤。
v0.13.0 版本新增。
- legend“auto”, “brief”, “full”, or False
如何繪製圖例。如果為「簡略 (brief)」,數值
hue
和size
變數將會以均勻間隔的值樣本來表示。如果為「完整 (full)」,則每個群組都會在圖例中獲得一個條目。如果為「自動 (auto)」,則根據層級數量選擇簡略或完整表示。如果為False
,則不會加入圖例資料,也不會繪製圖例。v0.13.0 版本新增。
- axmatplotlib Axes
要將繪圖繪製在其上的 Axes 物件,否則使用目前的 Axes。
- kwargs鍵,值對應
其他關鍵字參數會傳遞給
matplotlib.axes.Axes.scatter()
。
- 回傳值:
- axmatplotlib Axes
回傳繪製了圖形的 Axes 物件。
另請參閱
swarmplot
一個類別散佈圖,其中點不會重疊。可以與其他圖形一起使用來顯示每個觀察值。
boxplot
一個具有相似 API 的傳統箱型圖。
violinplot
箱型圖和核密度估計的組合。
catplot
將類別圖與
FacetGrid
結合。
範例
指定單一數值變數會顯示其單變數分佈,點在另一個軸上隨機「抖動」。
tips = sns.load_dataset("tips") sns.stripplot(data=tips, x="total_bill")
指定第二個變數會分割點的條狀圖,以比較該變數的類別層級。
sns.stripplot(data=tips, x="total_bill", y="day")
透過交換類別和數值變數的指定,顯示垂直方向的條狀圖。
sns.stripplot(data=tips, x="day", y="total_bill")
在 0.12 版本之前,類別變數的層級預設具有不同的顏色。若要獲得相同的效果,請明確指定
hue
變數。sns.stripplot(data=tips, x="total_bill", y="day", hue="day", legend=False)
或者,您可以將不同的變數指定給
hue
,以顯示多維度關係。sns.stripplot(data=tips, x="total_bill", y="day", hue="sex")
如果
hue
變數是數值的,則預設會使用定量調色盤來映射 (請注意,在 0.12 版本之前並非如此)。sns.stripplot(data=tips, x="total_bill", y="day", hue="size")
使用
palette
控制顏色映射,包括透過傳遞定性調色盤的名稱來強制進行類別映射。sns.stripplot(data=tips, x="total_bill", y="day", hue="size", palette="deep")
預設情況下,
hue
變數的不同層級會混合在每個條狀圖中,但設定dodge=True
將會分割它們。sns.stripplot(data=tips, x="total_bill", y="day", hue="sex", dodge=True)
可以透過設定
jitter=False
來停用隨機抖動。sns.stripplot(data=tips, x="total_bill", y="day", hue="sex", dodge=True, jitter=False)
如果在寬格式模式下繪圖,資料框架的每個數值欄都會映射到
x
和hue
。sns.stripplot(data=tips)
若要在寬格式模式下變更方向,請明確傳遞
orient
。sns.stripplot(data=tips, orient="h")
當兩個軸變數都是數值時,
orient
參數也很有用,因為它可以解決要沿哪個維度進行分組 (和抖動) 的模糊性。sns.stripplot(data=tips, x="total_bill", y="size", orient="h")
預設情況下,即使類別變數是數值的,也會使用固定比例 (0, 1, …) 將其映射到離散索引。
sns.stripplot( data=tips.query("size in [2, 3, 5]"), x="total_bill", y="size", orient="h", )
若要停用此行為並使用變數的原始比例,請設定
native_scale=True
。sns.stripplot( data=tips.query("size in [2, 3, 5]"), x="total_bill", y="size", orient="h", native_scale=True, )
可以透過傳遞
matplotlib.axes.Axes.scatter()
的關鍵字參數來實現進一步的視覺自訂。sns.stripplot( data=tips, x="total_bill", y="day", hue="time", jitter=False, s=20, marker="D", linewidth=1, alpha=.1, )
若要製作具有多個面的圖形,使用
catplot()
比直接使用FacetGrid
更安全,因為catplot()
將確保類別和 hue 變數在每個面中正確同步。sns.catplot(data=tips, x="time", y="total_bill", hue="sex", col="day", aspect=.5)