seaborn.PairGrid#
- class seaborn.PairGrid(data, *, hue=None, vars=None, x_vars=None, y_vars=None, hue_order=None, palette=None, hue_kws=None, corner=False, diag_sharey=True, height=2.5, aspect=1, layout_pad=0.5, despine=True, dropna=False)#
用於繪製資料集中成對關係的子圖網格。
此物件將資料集中的每個變數對應到多個軸網格中的一個欄和列。可以使用不同的軸層級繪圖函式,在上下三角形中繪製雙變數圖,並且每個變數的邊際分佈可以顯示在對角線上。
可以使用
pairplot()
在單行中生成幾個不同的常見圖。當您需要更高的彈性時,請使用PairGrid
。請參閱 教學 以取得更多資訊。
- __init__(data, *, hue=None, vars=None, x_vars=None, y_vars=None, hue_order=None, palette=None, hue_kws=None, corner=False, diag_sharey=True, height=2.5, aspect=1, layout_pad=0.5, despine=True, dropna=False)#
初始化繪圖和 PairGrid 物件。
- 參數:
- dataDataFrame
整潔 (長格式) 資料框架,其中每個欄是一個變數,每個列是一個觀察值。
- hue字串(變數名稱)
在
data
中將繪圖方面對應到不同顏色的變數。此變數將會從預設的 x 和 y 變數中排除。- vars變數名稱列表
在
data
中要使用的變數,否則使用每個具有數值資料類型的欄。- {x, y}_vars變數名稱列表
在
data
中分別用於圖形行和列的變數;例如,繪製一個非正方形圖。- hue_order字串列表
調色盤中色調變數的層級順序
- palette字典或 seaborn 調色盤
用於對應
hue
變數的顏色組合。如果是字典,則鍵應為hue
變數中的值。- hue_kws參數 -> 值列表對應的字典
要插入繪圖呼叫的其他關鍵字引數,以讓其他繪圖屬性在色調變數的層級之間變化(例如,散佈圖中的標記)。
- cornerbool
如果為 True,則不要將軸新增至網格的上(非對角線)三角形,使此圖為「角落」圖。
- height純量
每個分面的高度(以英吋為單位)。
- aspect純量
長寬比 * 高度得出每個分面的寬度(以英吋為單位)。
- layout_pad純量
軸之間的間距;傳遞到
fig.tight_layout
。- despine布林值
從圖形中移除頂部和右側的邊緣。
- dropna布林值
在繪圖之前,從資料中刪除遺失值。
範例
呼叫建構函式會建立一個空白的子圖網格,其中每一列和一欄對應於資料集中的一個數值變數
penguins = sns.load_dataset("penguins") g = sns.PairGrid(penguins)
將雙變數函數傳遞給
PairGrid.map()
將在每個軸上繪製雙變數圖g = sns.PairGrid(penguins) g.map(sns.scatterplot)
將不同的函數傳遞給
PairGrid.map_diag()
和PairGrid.map_offdiag()
將在對角線上顯示每個變數的邊際分佈g = sns.PairGrid(penguins) g.map_diag(sns.histplot) g.map_offdiag(sns.scatterplot)
也可以在圖的上下三角形上使用不同的函數(否則這些函數是多餘的)
g = sns.PairGrid(penguins, diag_sharey=False) g.map_upper(sns.scatterplot) g.map_lower(sns.kdeplot) g.map_diag(sns.kdeplot)
或者完全避免冗餘
g = sns.PairGrid(penguins, diag_sharey=False, corner=True) g.map_lower(sns.scatterplot) g.map_diag(sns.kdeplot)
PairGrid
建構函式接受一個hue
變數。此變數會直接傳遞給能理解它的函數g = sns.PairGrid(penguins, hue="species") g.map_diag(sns.histplot) g.map_offdiag(sns.scatterplot) g.add_legend()
但是你也可以傳遞 matplotlib 函數,在這種情況下,會在內部執行 groupby,並為每個層級繪製一個單獨的圖
g = sns.PairGrid(penguins, hue="species") g.map_diag(plt.hist) g.map_offdiag(plt.scatter) g.add_legend()
可以在映射函數時直接傳遞資料向量來指定其他語意變數
g = sns.PairGrid(penguins, hue="species") g.map_diag(sns.histplot) g.map_offdiag(sns.scatterplot, size=penguins["sex"]) g.add_legend(title="", adjust_subtitles=True)
當使用可以實現數值色調映射的 seaborn 函數時,您會想要停用對角軸上變數的映射。 請注意,
hue
變數預設會從顯示的變數清單中排除g = sns.PairGrid(penguins, hue="body_mass_g") g.map_diag(sns.histplot, hue=None, color=".3") g.map_offdiag(sns.scatterplot) g.add_legend()
可以使用
vars
參數來精確控制使用哪些變數variables = ["body_mass_g", "bill_length_mm", "flipper_length_mm"] g = sns.PairGrid(penguins, hue="body_mass_g", vars=variables) g.map_diag(sns.histplot, hue=None, color=".3") g.map_offdiag(sns.scatterplot) g.add_legend()
該圖不必是正方形:可以使用不同的變數來定義列和欄
x_vars = ["body_mass_g", "bill_length_mm", "bill_depth_mm", "flipper_length_mm"] y_vars = ["body_mass_g"] g = sns.PairGrid(penguins, hue="species", x_vars=x_vars, y_vars=y_vars) g.map_diag(sns.histplot, color=".3") g.map_offdiag(sns.scatterplot) g.add_legend()
探索在對角軸上解析多個分佈的不同方法可能會很有用
g = sns.PairGrid(penguins, hue="species") g.map_diag(sns.histplot, multiple="stack", element="step") g.map_offdiag(sns.scatterplot) g.add_legend()
方法
__init__
(data, *[, hue, vars, x_vars, ...])初始化繪圖和 PairGrid 物件。
add_legend
([legend_data, title, ...])繪製圖例,可能會將其放置在軸外部並調整圖形大小。
apply
(func, *args, **kwargs)將網格傳遞給使用者提供的函數並返回 self。
map
(func, **kwargs)在每個子圖中使用相同的函數繪圖。
map_diag
(func, **kwargs)在每個對角子圖中使用單變數函數繪圖。
map_lower
(func, **kwargs)在下對角子圖中使用雙變數函數繪圖。
map_offdiag
(func, **kwargs)在非對角子圖中使用雙變數函數繪圖。
map_upper
(func, **kwargs)在上對角子圖中使用雙變數函數繪圖。
pipe
(func, *args, **kwargs)將網格傳遞給使用者提供的函數並返回其值。
savefig
(*args, **kwargs)儲存圖表的圖像。
set
(**kwargs)設定每個子圖軸的屬性。
tick_params
([axis])修改刻度、刻度標籤和網格線。
tight_layout
(*args, **kwargs)在排除圖例的矩形區域內呼叫 fig.tight_layout。
屬性
fig
已棄用:請優先使用
figure
屬性。figure
存取網格底層的
matplotlib.figure.Figure
物件。legend
如果存在,則為
matplotlib.legend.Legend
物件。