seaborn.objects.Plot.add#
- Plot.add(mark, *transforms, orient=None, legend=True, label=None, data=None, **variables)#
根據標記和資料轉換(s)指定視覺化圖層。
這是指定如何視覺化資料的主要方法。可以多次使用不同的參數來定義具有多個圖層的繪圖。
- 參數:
- mark
Mark
在此圖層中使用的資料視覺化表示。
- transforms
Stat
或Move
表示在繪製資料之前要應用的轉換的物件。目前,最多可以使用一個
Stat
,並且必須先傳遞它。此限制將在未來放寬。- orient“x”、“y”、“v” 或 “h”
標記的方向,這也會影響轉換的計算方式。通常對應於定義聚合群組的軸。“v”(垂直)和“h”(水平)選項是“x”/“y”的同義詞,但對於某些標記可能更直觀。如果未提供,則將根據資料和刻度的特性推斷方向。
- legendbool
選擇是否在圖例中隱藏此圖層的標記/映射。
- labelstr
用於圖例中圖層的標籤,獨立於任何映射。
- dataDataFrame 或 dict
覆寫建構函式中提供的全域來源的資料來源。
- variables資料向量或識別符號
其他圖層特定的變數,包括將直接傳遞給轉換而無需縮放的變數。
- mark
範例
每個圖層都必須使用
Mark
定義p = so.Plot(tips, "total_bill", "tip").add(so.Dot()) p
多次呼叫
Plot.add
以新增多個圖層。除了Mark
之外,圖層還可以使用Stat
或Move
轉換來定義p.add(so.Line(), so.PolyFit())
多個轉換可以堆疊成管道。
( so.Plot(tips, y="day", color="sex") .add(so.Bar(), so.Hist(), so.Dodge()) )
圖層具有「方向」,這會影響轉換和某些標記。方向通常從分配給
x
和y
的變數類型推斷,但在其他情況下可能不明確時,可以指定它( so.Plot(tips, x="total_bill", y="size", color="time") .add(so.Dot(alpha=.5), so.Dodge(), so.Jitter(.4), orient="y") )
可以將變數分配給特定的圖層。請注意
pointsize
如何傳遞給Plot.add
的區別 — 因此它由刻度映射 — 而color
和linewidth
直接傳遞給Line
,因此它們直接設定線條的顏色和寬度( so.Plot(tips, "total_bill", "tip") .add(so.Dots(), pointsize="size") .add(so.Line(color=".3", linewidth=3), so.PolyFit()) .scale(pointsize=(2, 10)) )
否則會應用於整個繪圖的變數也可以透過將它們的值設定為
None
從特定圖層排除( so.Plot(tips, "total_bill", "tip", color="day") .facet(col="day") .add(so.Dot(color="#aabc"), col=None, color=None) .add(so.Dot()) )
僅由轉換使用的變數必須在圖層層級傳遞
( so.Plot(tips, "day") .add(so.Bar(), so.Hist(), weight="size") .label(y="Total patrons") )
每個圖層都可以提供自己的資料來源。如果在建構函式中提供了資料來源,則會使用其索引聯結圖層資料
( so.Plot(tips, "total_bill", "tip") .add(so.Dot(color="#aabc")) .add(so.Dot(), data=tips.query("size == 2"), color="time") )
提供
label
將在繪圖的圖例中註釋圖層( so.Plot(tips, x="size") .add(so.Line(color="C1"), so.Agg(), y="total_bill", label="Bill") .add(so.Line(color="C2"), so.Agg(), y="tip", label="Tip") .label(y="Value") )