當前位置:成語大全網 - 書法字典 - Matplotlib和Seaborn之間的接口

Matplotlib和Seaborn之間的接口

處理包含兩個或多個變量的圖的壹個實用方法是刻面。當使用刻面技術時,通常根據分類變量的不同級別,將數據分成不相交的子集。對於每個子集,相同的圖形用於其他變量。分面是壹種比較其他變量在不同水平上的分布和關系的方法,特別是當有三個或更多的變量需要考慮時。雖然facet最適合於多元圖,但仍然有必要在我們的二元圖中討論這種技術。

比如我們不再用小提琴圖或者盒圖來描述壹個數值變量和壹個分類變量之間的關系,而是用刻面直方圖來描述按照分類變量級別劃分的子集數據。我們可以使用Seaborn的FacetGrid類來創建刻面圖。創建多面圖形時,需要完成兩個步驟。首先,我們需要創建FacetGrid對象的壹個實例,並指定要刻面的特性(在我們的示例中為“cat_var”)。然後在FacetGrid對象上使用map方法來指定要在每個子集中繪制的圖形類型和變量(在本例中,為“num_var”繪制壹個直方圖)。

在map調用中,將繪圖函數和變量設置為位置參數。不要將其設置為關鍵字參數,比如x = "num_var ",否則映射將無法正常工作。

註意,每個子數據集都是獨立繪制的。每個圖形使用hist中默認的10條來劃分數據,並且每個圖形具有不同的條大小。但是每個平面的坐標軸範圍都是壹樣的,這樣就可以清晰直接的比較各組了。通過在所有平面上設置相同的分隔線,您仍然可以使圖形更清晰。可以通過map函數中的其他關鍵字參數設置其他可視化參數。

如果要繪制很多分類級別,可能需要在FacetGrid對象的初始化過程中添加更多的參數,以清晰地傳達信息。以下示例包含壹個具有15個不同級別的分類變量“many_cat_var”。設置col_wrap = 5意味著圖形將包含5個面,而不是壹條包含15個圖形的長線。

可以采取的有助於理解圖形的其他動作包括:將每個面的高度設置為2英寸(“大小”),根據組均值(“列順序”)對面進行排序,限制寧濱邊的數量,以及使用set_titles方法和{列名稱}模板變量將每個面的標題更改為分類級別名稱。