- Seaborn 教程
- Seaborn - 首頁
- Seaborn - 簡介
- Seaborn - 環境設定
- 匯入資料集和庫
- Seaborn - 圖表美學
- Seaborn - 調色盤
- Seaborn - 直方圖
- Seaborn - 核密度估計
- 視覺化成對關係
- Seaborn - 繪製分類資料
- 觀測值的分佈
- Seaborn - 統計估計
- Seaborn - 繪製寬格式資料
- 多面板分類圖
- Seaborn - 線性關係
- Seaborn - 分面網格
- Seaborn - 對網格
- 函式參考
- Seaborn - 函式參考
- Seaborn 有用資源
- Seaborn - 快速指南
- Seaborn - 有用資源
- Seaborn - 討論
Seaborn.FacetGrid() 方法
當您想分別在資料集的子集中視覺化變數的分佈或多個變數之間的關係時,Seaborn.FacetGrid() 方法非常有用。Row、Col 和 Hue 是可以用來繪製 FacetGrid 的三個可能的維度。前兩個明顯對應於生成的軸陣列。
使用 hue 引數,它以不同的顏色描繪幾個資料子集,它還可以表達第三個變數的級別。與接收 hue 的軸級別函式相比,這只是將子集繪製在一起,並且不會為特定顯示定製 hue 引數。它使用顏色來解析第三維上的元件。
語法
以下是 seaborn.FacetGrid() 方法的語法:
class seaborn.FacetGrid(**kwargs) Multi-plot grid for plotting conditional relationships. __init__(self, data, *, row=None, col=None, hue=None, col_wrap=None, sharex=True, sharey=True, height=3, aspect=1, palette=None, row_order=None, col_order=None, hue_order=None, hue_kws=None, dropna=False, legend_out=True, despine=True, margin_titles=False, xlim=None, ylim=None, subplot_kws=None, gridspec_kws=None, size=None)
引數
下面討論 seaborn.FacetGrid() 方法的一些引數。
| 序號 | 名稱和描述 |
|---|---|
| 1 | 資料 接收資料框,其中每一列是一個變數,每一行是一個觀測值。 |
| 2 | Row, col, hue 指定將在特定網格面上顯示的資料部分的變數。要控制此變數的級別順序,請參考 var order 引數。 |
| 3 | Col_wrap 接收整數作為輸入,並在此寬度處“換行”列變數,以使列面跨越多行。 |
| 4 | Share{x,y} 接收布林值或 col、row 作為值,如果為真,則各個面將在列上共享 y 軸和/或在行上共享 x 軸。 |
| 5 | Height 接收標量值,並確定面的高度。 |
| 6 | Aspect 接收標量值,每個面的縱橫比,因此 aspect * height 給出每個面的寬度(以英寸為單位)。 |
| 7 | Despine 接收布林值,並從圖中刪除頂部和右側的脊柱。 |
| 8 | {row,col,hue}_order 接收列表作為輸入,並由此順序確定分面變數級別的順序。 |
在繼續繪製圖表之前,讓我們載入 seaborn 庫和資料集。
載入 seaborn 庫
要載入或匯入 seaborn 庫,可以使用以下程式碼行。
Import seaborn as sns
載入資料集
在本文中,我們將使用 seaborn 庫中內建的泰坦尼克號資料集。使用以下命令載入資料集。
titanic=sns.load_dataset("titanic")
以下命令用於檢視資料集中前 5 行。這使我們能夠了解可以使用哪些變數來繪製圖表。
titanic.head()
以下是上述程式碼段的輸出。
index,survived,pclass,sex,age,sibsp,parch,fare,embarked,class,who,adult_male,deck,embark_town,alive,alone 0,0,3,male,22.0,1,0,7.25,S,Third,man,true,NaN,Southampton,no,false 1,1,1,female,38.0,1,0,71.2833,C,First,woman,false,C,Cherbourg,yes,false 2,1,3,female,26.0,0,0,7.925,S,Third,woman,false,NaN,Southampton,yes,true
現在我們已經載入了資料集,我們將探索一些示例。
示例 1
在此示例中,我們將看到如何透過將資料集以及 col 和 row 引數傳遞給 FacetGrid() 方法來生成簡單的分面網格。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.FacetGrid(titanic, col="sex", row="class")
plt.show()
輸出
獲得的輸出如下:
示例 2
為了在每個面上繪製圖表,請將函式和資料框中一個或多個列的名稱傳遞給 FacetGrid.map()。在此示例中,我們將執行相同的操作。我們使用泰坦尼克號資料集,並將散點圖繪製在所有面上。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
grid = sns.FacetGrid(titanic, col="sex", row="class")
grid.map(sns.scatterplot, "age", "fare")
plt.show()
可以使用上述程式碼行來實現所解釋的場景,並給出以下獲得的輸出。
輸出
示例 3
現在,我們將使用 hsitplot() 方法在所有面上繪製直方圖,並將 add_legend 用於所有新增到顯示圖表的圖例。這可以使用以下程式碼行來完成。首先,我們將繪製各個面並在這些面上繪製histplot。然後,我們將圖例新增到各個面。為此,facetgrid 將儲存在一個名為 grid 的變數中。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
grid = sns.FacetGrid(titanic, col="class", hue="sex")
grid.map_dataframe(sns.histplot, x="age", y="fare")
grid.add_legend()
plt.show()
輸出
獲得的輸出如下:
示例 4
我們將瞭解 python 中 savefig() 方法的用法。這可以用來將獲得的任何繪圖儲存為影像以供您個人使用。您的繪圖必須像上面的示例一樣儲存在 grid 等變數中,然後我們將對其應用 savefig() 方法並獲得影像。savefig() 方法接受一個引數,即儲存繪圖的檔名。在下面的程式碼中,繪圖被儲存為“facetplot.png”。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
grid.savefig("facetplot.png")
plt.show()