matplotlib是python最常見的繪圖包,強(qiáng)大之處不言而喻。然而在數(shù)據(jù)科學(xué)領(lǐng)域,可視化庫(kù)-Seaborn也是重量級(jí)的存在。
由于matplotlib比較底層,想要繪制漂亮的圖非常麻煩,需要寫大量的代碼。
Seaborn是在matplotlib基礎(chǔ)上進(jìn)行了高級(jí)API封裝,圖表裝飾更加容易,你可以用更少的代碼做出更美觀的圖。同時(shí),Seaborn高度兼容了numy、pandas、scipy等庫(kù),使得數(shù)據(jù)可視化更加方便快捷。
話不多說(shuō),先來(lái)展示一下Seaborn的風(fēng)采:
熱力圖
小提琴圖
散點(diǎn)矩陣圖
多元散點(diǎn)圖
帶邊際分布的Hexbin圖
下面正式開始講解如何使用Seaborn繪圖
功能簡(jiǎn)介
Seaborn讓coder專注于可視化分析,提供更多高級(jí)接口,無(wú)需將過(guò)多時(shí)間用于數(shù)據(jù)處理和圖表裝飾,一般而言,它主要有以下功能:
- 計(jì)算多變量間關(guān)系的面向數(shù)據(jù)集接口
- 可視化類別變量的觀測(cè)與統(tǒng)計(jì)
- 可視化單變量或多變量分布并與其子數(shù)據(jù)集比較
- 控制線性回歸的不同因變量并進(jìn)行參數(shù)估計(jì)與作圖
- 對(duì)復(fù)雜數(shù)據(jù)進(jìn)行易行的整體結(jié)構(gòu)可視化
- 對(duì)多表統(tǒng)計(jì)圖的制作高度抽象并簡(jiǎn)化可視化過(guò)程
- 提供多個(gè)內(nèi)建主題渲染 matplotlib 的圖像樣式
- 提供調(diào)色板工具生動(dòng)再現(xiàn)數(shù)據(jù)
安裝最新版本的Seaborn非常簡(jiǎn)單,使用pip命令即可:
Seaborn的依賴庫(kù)有:numpy、scipy、matplotlib、pandas
導(dǎo)入Seaborn庫(kù),一般使用:sns.__version
# 本文使用最新版本:0.9.0
Seaborn裝載了一些默認(rèn)主題風(fēng)格,通過(guò)sns.set()方法實(shí)現(xiàn)。
sns.set()可以設(shè)置5種風(fēng)格的圖表背景:darkgrid, whitegrid, dark, white, ticks,通過(guò)參數(shù)style設(shè)置,默認(rèn)情況下為darkgrid風(fēng)格:你還可以通過(guò)改變參數(shù)palette來(lái)調(diào)整顏色:提示:有人會(huì)問(wèn)上面的代碼從哪加載數(shù)據(jù)集?是這樣的,Seaborn會(huì)內(nèi)置一些數(shù)據(jù)集,通過(guò)load_data()方法加載大家有興趣可以去官方教程看看有哪些內(nèi)置數(shù)據(jù)集本文都會(huì)用Seaborn內(nèi)置數(shù)據(jù)集講解案例
點(diǎn)、線混合繪圖函數(shù) - relplot()relplot()是seaborn中非常重要的繪圖函數(shù),它可以用于繪制散點(diǎn)圖和線圖,通過(guò)參數(shù)kind改變繪圖類型。
- 散點(diǎn)圖:relplot(kind='scatter')
上面加載了內(nèi)置數(shù)據(jù)集-tips(小費(fèi)數(shù)據(jù)集),并對(duì)total_bill和tip字段繪制散點(diǎn)分布圖。
tips數(shù)據(jù)集字段說(shuō)明:前面繪制了total_bill(總消費(fèi))和tip(小費(fèi))的散點(diǎn)關(guān)系圖,我們可以清晰地看到這兩者成正相關(guān)性。如果在上面的基礎(chǔ)上再區(qū)分時(shí)間,顯示這次消費(fèi)屬于一周的周幾,并用不同顏色標(biāo)記點(diǎn)性別不同會(huì)對(duì)這個(gè)分布關(guān)系產(chǎn)生影響,我們繪制男、女兩張圖表性別不同、用餐類型也不同的情況下,分布是什么樣的,可以繪制多張圖表傳遞參數(shù) col='sex',row='time':你也可以繪制線圖,只需要傳遞參數(shù)kind='line':
lineplot()和scatter()函數(shù)lineplot()和scatter()分別用于繪制線圖和散點(diǎn)圖,前面說(shuō)過(guò)relplot()函數(shù)已經(jīng)覆蓋這兩個(gè)繪圖功能,所以就不贅述了,有意者可以自研。lmplot()函數(shù)用以繪制回歸模型,描述線性關(guān)系。
依然以小費(fèi)數(shù)據(jù)集為例:
這是一個(gè)散點(diǎn)圖+線性回歸+95%置性區(qū)間的組合圖
你調(diào)整置性區(qū)間的大小,傳遞參數(shù)ci:60:
對(duì)smoker(是否吸煙)做分類處理,得到兩個(gè)不同的回歸曲線,繪制非參數(shù)回歸模型(局部加權(quán)線性回歸),傳遞參數(shù) lowess=True:分類散點(diǎn)圖 - stripplot()函數(shù) 當(dāng)有一維數(shù)據(jù)是分類數(shù)據(jù)時(shí),散點(diǎn)圖成了條帶形狀,這里就用到stripplot()函數(shù)。箱形圖(Box-plot)又稱為盒須圖、盒式圖或箱線圖,是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計(jì)圖。它主要用于反映原始數(shù)據(jù)分布的特征,還可以進(jìn)行多組數(shù)據(jù)分布特征的比 較。- 先找出一組數(shù)據(jù)的最大值、最小值、中位數(shù)和兩個(gè)四分位數(shù);
- 然后, 連接兩個(gè)四分位數(shù)畫出箱子;
- 再將最大值和最小值與箱子相連接,中位數(shù)在箱子中間。
提琴圖 - violinplot()函數(shù)小提琴圖結(jié)合了箱型圖和密度圖的特征,用于展示數(shù)據(jù)的分布形狀。粗黑線表示四分?jǐn)?shù)范圍,延伸的細(xì)線表示95%的置信區(qū)間,白點(diǎn)為中位數(shù)。小提琴圖彌補(bǔ)了箱型圖的不足,可以展示數(shù)據(jù)分布是雙模還是多模。本介紹了Seaborn安裝、風(fēng)格配置以及各類繪圖函數(shù)的使用,當(dāng)然這里只是列舉了小部分函數(shù)和功能,拋磚引玉,為展示seaborn的強(qiáng)大之處。希望Seaborn能成為大家數(shù)據(jù)科學(xué)路上的得力助手!Python大數(shù)據(jù)分析
data creat value
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。