seaborn庫是對matplotlib庫更高級別的封裝,相當於提供了各種統計圖的模板,我們只需要將自己的數據傳入相應的方法即可,所以說,如果你學懂了前面matplotlib中的基礎繪圖方法的話,學習本主題內容將非常輕鬆(註:由於系統編輯器限制,所有代碼行有加粗的無序列表表示。)
首先,我們還是來看一下seaborn庫主要學習的內容及篇幅安排。
seaborn整體布局及風格設置seaborn調色板及顏色設置seaborn單變量分析繪圖(直方圖、條形圖)seaborn回歸分析繪圖seaborn繪製散點圖(分布散點圖、分簇散點圖)seaborn繪製盒圖、小提琴圖seaborn繪製熱度圖seaborn多圖繪製及facetgrid使用方法對於seaborn庫的內容,拆分比較細,這樣做的目的是一是想每篇文章具有一定的針對性,而是想看每篇文章的時間不要太長,希望大家能夠理解。好了,下面我們正式進入學習。
seaborn.set()設置風格
首先,看一下seaborn.set()函數參數:seaborn.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=True, rc=None),從這個set()函數,可以看出,通過它我們可以設置背景色、風格、字型、字體等。下面我們通過例子看看。首先,導入相關依賴包。注意這裡的#%matplotlib inline是jupyter notebook內置的一個魔法函數,有了%matplotlib inline 就可以省掉plt.show()了。
import seaborn as snsimport numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt%matplotlib inline然後,我們定義一個函數,這個函數主要是生成100個0到15的變量,然後用這個變量畫出6條曲線。
def sinplot(flip=2):x = np.linspace(0, 15, 100)for i in range(1, 6):plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)#調用這個函數sinplot
上面的圖中,我們對風格沒有做任何設置,接下來我們調用sns.set()函數來改變style,看看有何效果。
sns.set(style='white')sinplot()
那麼,問題來了,有人會說,這個set()函數這麼多參數,只要改變其中任意一個參數的值,繪圖效果就會發生變化,那我們怎麼知道哪種搭配是最佳效果呢,難道我們要一個個去測試嗎?當然不是,seaborn提供了5種默認的風格,我們在實際繪圖中只要選擇一種喜歡的風格就可以了,下面我們就看看這5種風格的用法及效果。
seaborn.set_style()使用5種默認風格
函數參數:seaborn.set_style(style=None, rc=None),這裡style可選參數值有:darkgrid,whitegrid,dark,white,ticks,下面我們就通過設置不同的風格,看看每種風格的效果。
sns.set(style='white')sns.set(style='whitegrid')sns.set(style='darkgrid')sns.set(style='dark')sns.set(style='ticks')sinplot()
當然,除了使用這種內置的5種風格,我們也可以通過下面幾個函數做一下個性化設置。
seaborn.despine()
這個函數可以移除圖像的上部和右側的坐標軸,我們看看效果。
sinplot()sns.despine()
這裡默認移除了上部和右側的軸,當然我們也可以移除其他軸,只要將表示四個邊的參數值改為true即可,下面是個這個函數的參數seaborn.despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False),其中offset表示偏離左側軸的距離。
sns.set(style='ticks')sinplot()sns.despine(offset=50)
使用with打開某種風格
在matplotlib中我們已經學過了,在一個figure對象中,我們可以添加多個子圖,那麼如果不同的子圖使用不同的風格,我們該如何做呢?很簡單,使用with 打開某種風格,然後在with下畫的圖都使用with打開的分格,我們來看看代碼。
with sns.axes_style("darkgrid"):plt.subplot(211)sinplot(4)plt.subplot(212)sinplot(-4)
seaborn.set_context()
seaborn.set_context(context=None, font_scale=1, rc=None)這個函數也是來設置繪圖背景參數的,它主要來影響標籤、線條和其他元素的效果,但不會影響整體的風格,跟style有點區別。這個函數默認使用notebook,其他context可選值有:paper, talk, poster。下面我們看看具體的效果。
sns.set_context("paper")plt.figure(figsize=(8, 6))sinplot()
sns.set_context("talk")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})
sinplot()
好了,對於seaborn庫的風格設置,就到此為止,在後面的文章中也會用到這些風格,這裡大家對風格設置的幾個常用函數有個大致了解就可以了。喜歡的小夥伴點個關注,後面會持續更新!