Seaborn學習及繪製各種圖

爲什麼我們需要Seaborn
開始繪圖吧:

首先回答一個問題:matplotlib已經足夠可以畫很多圖了,爲什麼我們還要用Seaborn呢?

答案就是懶惰,換個角度說,懶人可以說是推動了社會發展嘛。具體來說是,當我們使用matplotlib繪圖時,即使我們要畫一個簡單的圖,每次都要按照流程將代碼整個寫完,感覺很麻煩,這時候我們會不會想說,直接做一個模板然後將要展示出去的數據直接傳入就可以繪製出精美的圖案了?實際上Seaborn是對matplotlib基礎上的封裝,當我們要畫折線圖、散點圖等時只需要兩三行代碼即可。

開始繪圖吧!

首先導入本次訓練中必要的庫:
import seaborn as sns # 導入可視化庫seaborn,我們通常簡稱爲sns
import numpy as np # 導入科學計算庫
import matplotlib as mpl #導入可視化庫
import matplotlib.pyplot as plt
%matplotlib inline   
# 內嵌畫圖 有了%matplotlib inline 就可以省掉plt.show()了

1.整體佈局風格設置

**1.1使用sns.set()函數** 導入seaborn默認繪圖風格,這裏我們定義了一個簡單函數,測試一下
def sinplot(flip=1):
    x = np.linspace(0,14,100)
    for i in range(1,7):
        plt.plot(x,np.sin(x+i*.5)*(7-i)*flip)

導入之前:
2.1
導入之後
就看見

seaborn提供了5種主題風格

1.2 whitegrid
繪製箱線圖

sns.set_style("whitegrid")
data=np.random.normal(size=(20,6))+np.arange(6)/2
sns.boxplot(data=data)  #繪製箱線圖

箱線圖
1.3 dark
沒有刻度線,背景是深色

sns.set_style("dark") #不要網格線,背景是深色
sinplot()

dark
1.4 white
沒有刻度線,背景是白色

sns.set_style("dark") #不要網格線,背景是白色
sinplot()

white
1.5 ticks
在上下左右加上刻度線,爲了美觀設置sns.despine() 清除上右邊的刻度線

sns.set_style("ticks") #在上下左右作出短線(刻度線)
sinplot()
sns.despine() # 清除上右邊的刻度線

tick

補充

1>設置sns.despine(offset=30),畫圖距離軸線的距離

sns.violinplot(data)
sns.despine(offset=30)#畫圖距離軸線的距離

offset
2>設置sns.despine(left=True)保留左邊的軸

sns.set_style("whitegrid")
sns.boxplot(data=data,palette="deep")  #繪製箱線圖
sns.despine(left=True)

在這裏插入圖片描述
3> sns.set_context()
可取"notebook"、“paper”、“poster”等,如下圖

sns.set()
sns.set_context("paper")
plt.figure(figsize=(8,6))
sinplot()

sns.set_context("poster")
plt.figure(figsize=(8,6))
sinplot()

sns.set_context("notebook",font_scale=1.5,rc={"lines.linewidth":2.5})
plt.figure(figsize=(8,6))
sinplot()

paper
poster
notebook

2.調色板

2.1 color_palette()
能傳入任何Matplotlib所支持的顏色,若不寫參數則使用默認值

2.2 set_palette()
設置所有圖的顏色

### 3.單變量分析

未完待續

點擊此處,返回頂部

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章