Seaborn簡介
matplotlib可能是基於Python最優秀的繪圖庫了。但是它的api數目比較多,較爲複雜。
Seaborn基於matplotlib的核心庫進行了更高級的封裝。可以繪製出更高級的圖形。
Seaborn的基本使用
由於Seaborn是基於matplotlib進行開發的。因此我們使用seaborn時只需正常使用matplotlib的api。外加簡單的幾句Seaborn函數即可:
import seaborn as sns
sns.set()
Seaborn繪圖API概覽
當然sns也自帶繪圖的API,你可以直接使用sns的API。
首先你要知道Seaborn繪圖的API主要可以分爲兩類:
- Figure-level的,比如relplot。
- Axes-level的,比如scatterplot和lineplot。
這兩個level的區別在於,figure-level像是懶人函數,適合於快速應用。而axes-plot的可以實現與matplotlib實現更加靈活和緊密的結合。
不過這些API的使用方法是大同小異的。比如說他們都有相同的屬性:
- data屬性:選擇什麼樣的對象。
- x和y屬性:選擇哪些數據在圖上當做x和y軸展示。
- hue:給每一個線段或者散點染色。
- style:設置每一個線段或者散點的格式。
關聯圖
涉及到關聯性分析的時候,我們可以使用一下API
- replot:繪製關係圖(即可以畫散點,可以畫線型圖, 默認是畫散點,你可以指定kind屬性來選擇話什麼圖形)
- scatterplot:專門繪製散點圖。
- lineplot: 專門繪製線型圖。
類別圖
(我感覺這些圖都差不多。。)
-
分類散點圖:
stripplot()
(kind="strip"
)
swarmplot()
(kind="swarm"
)
-
分類分佈圖:
boxplot()
(kind="box"
)
violinplot()
(kind="violin"
)
boxenplot()
(kind="boxen"
)
-
分類估計圖:
pointplot()
(kind="point"
)
barplot()
(kind="bar"
)
countplot()
(kind="count"
)
分佈圖
我們可以通過分佈圖查看變量的分佈情況。一般分爲單變量分佈(這個好像沒什麼用),還有一個多變量分佈(基本上都是兩個變量,兩個以上的變量很難繪製出直觀的可視化圖形)
不過說實話下面幾個圖並不是分佈函數(CDF)的圖,而是離散型隨機變量PMF的圖片。因爲CDP必然是非降的。
一. 查看單變量分佈
sns.distplot(iris["sepal_length"])
查看多變量分佈我們一般適用jointplot函數:
二. 核密度估計函數
sns.jointplot(x="sepal_length", y="sepal_width", data=iris, kind="kde")
三. 六邊形計數圖
sns.jointplot(x="sepal_length", y="sepal_width", data=iris, kind="hex")
四. pairplot
這個應該是seaborn中最爲強大的api了。它能夠把所有特徵兩兩分佈圖全部都畫出來:
sns.pairplot(iris, hue="species")
矩陣圖
矩陣圖裏最常用的兩個圖是heatmap
和clustermap
其中:
heatmap
是用來畫熱力圖,用來研究各個變量之間的相關性的。clustermap
是用來使用層次聚類方法的。