您好,登錄后才能下訂單哦!
這篇文章主要講解了“Seaborn有哪些功能”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Seaborn有哪些功能”吧!
基本信息
Seaborn是一個(gè)用Python制作統(tǒng)計(jì)圖形的庫。它建立在matplotlib之上,并與panda數(shù)據(jù)結(jié)構(gòu)緊密集成
以下是seaborn提供的一些功能:
一個(gè)面向數(shù)據(jù)集的API,用于檢查多個(gè)變量之間的關(guān)系
專門支持使用分類變量來顯示觀察結(jié)果或匯總統(tǒng)計(jì)數(shù)據(jù)
用于可視化單變量或雙變量分布以及在數(shù)據(jù)子集之間進(jìn)行比較的選項(xiàng)
各類因變量線性回歸模型的自動(dòng)估計(jì)與作圖
方便查看復(fù)雜數(shù)據(jù)集的整體結(jié)構(gòu)
用于構(gòu)建多圖塊網(wǎng)格的高級(jí)抽象,使您可以輕松地構(gòu)建復(fù)雜的可視化
對(duì)matplotlib圖形樣式與幾個(gè)內(nèi)置主題的簡(jiǎn)潔控制
選擇調(diào)色板的工具,忠實(shí)地揭示您的數(shù)據(jù)模式
Seaborn的目標(biāo)是使可視化成為探索和理解數(shù)據(jù)的核心部分。它的面向數(shù)據(jù)集的繪圖功能對(duì)包含整個(gè)數(shù)據(jù)集的數(shù)據(jù)流和數(shù)組進(jìn)行操作,并在內(nèi)部執(zhí)行必要的語義映射和統(tǒng)計(jì)聚合以生成信息圖。
下面是一個(gè)例子:
import seaborn as snssns.set()tips = sns.load_dataset("tips")sns.relplot(x="total_bill", y="tip", col="time", hue="smoker", style="smoker", size="size", data=tips);
這里發(fā)生了一些事情。讓我們一個(gè)一個(gè)來看:
1. 我們導(dǎo)入seaborn,這是這個(gè)簡(jiǎn)單示例所需的唯一庫。
import seaborn as sns
在幕后,seaborn使用matplotlib繪制圖片。許多任務(wù)只能通過seaborn函數(shù)來完成,但是進(jìn)一步的定制可能需要直接使用matplotlib。下面將更詳細(xì)地解釋這一點(diǎn)。對(duì)于交互式工作,建議在matplotlib模式下使用Jupyter/IPython接口,否則必須調(diào)用matplotlib.pyplot.show來查看圖片。
2. 我們應(yīng)用默認(rèn)的默認(rèn)seaborn主題、縮放和調(diào)色板。
sns.set()
這將使用matplotlib rcParam系統(tǒng),并將影響所有matplotlib圖的外觀,即使您沒有使用seaborn創(chuàng)建它們。除了默認(rèn)主題之外,還有其他幾個(gè)選項(xiàng),您可以獨(dú)立控制繪圖的樣式和比例,以便在表示上下文中快速轉(zhuǎn)換您的工作(例如,在演講期間生成具有可讀字體的繪圖)。如果您喜歡matplotlib的默認(rèn)設(shè)置,或者喜歡不同的主題,可以跳過這一步,仍然使用seaborn繪圖函數(shù)。
3. 我們加載一個(gè)示例數(shù)據(jù)集
tips = sns.load_dataset("tips")
文檔中的大多數(shù)代碼將使用load_dataset()函數(shù)來快速訪問示例數(shù)據(jù)集。這些數(shù)據(jù)集沒有什么特別的;它們只是pandas的數(shù)據(jù)倉(cāng)庫,我們可以把pandas裝進(jìn)去用read_csv或手工構(gòu)建它們。許多示例使用“tips”數(shù)據(jù)集,它非常乏味,但對(duì)于演示非常有用。tips數(shù)據(jù)集說明了組織數(shù)據(jù)集的“整潔”方法。如果您的數(shù)據(jù)集以這種方式組織,您將從seaborn中獲得最大的好處,下面將對(duì)此進(jìn)行更詳細(xì)的說明
4. 我們繪制了具有多個(gè)語義變量的分面散點(diǎn)圖。
sns.relplot(x="total_bill", y="tip", col="time", hue="smoker", style="smoker", size="size", data=tips)
這個(gè)特殊的圖顯示了tips數(shù)據(jù)集中五個(gè)變量之間的關(guān)系。其中三個(gè)是數(shù)值型的,兩個(gè)是分類型的。兩個(gè)數(shù)值變量(total_bill和tip)確定軸上每個(gè)點(diǎn)的位置,第三個(gè)變量(size)確定每個(gè)點(diǎn)的大小。一個(gè)分類變量將數(shù)據(jù)集分割成兩個(gè)不同的軸(facet),另一個(gè)分類變量確定每個(gè)點(diǎn)的顏色和形狀。
所有這些都是通過對(duì)seaborn函數(shù)relplot()的單個(gè)調(diào)用完成的。請(qǐng)注意,我們只提供了數(shù)據(jù)集中變量的名稱以及希望它們?cè)趫D中扮演的角色。與直接使用matplotlib不同,不需要將變量轉(zhuǎn)換為可視化的參數(shù)(例如,為每個(gè)類別使用的特定顏色或標(biāo)記)。翻譯是由seaborn自動(dòng)完成的。這讓用戶能夠?qū)W⒂谒麄兿胍獔D片回答的問題。
replot函數(shù)和kind參數(shù)
沒有通用的最佳數(shù)據(jù)可視化方法。不同的問題最好通過不同的可視化來回答。Seaborn試圖簡(jiǎn)化在不同的可視表示之間的切換,這些表示可以使用相同的面向數(shù)據(jù)集的API進(jìn)行參數(shù)化。
之所以使用relplot()函數(shù)來命名,是因?yàn)樗辉O(shè)計(jì)成可視化許多不同的統(tǒng)計(jì)關(guān)系。雖然散點(diǎn)圖是一種非常有效的方法,但是一個(gè)變量表示時(shí)間度量的關(guān)系最好用一條線表示。relplot()函數(shù)有一個(gè)方便參數(shù) kind,可以方便地切換到這個(gè)替代表示:
dots = sns.load_dataset("dots")sns.relplot(x="time", y="firing_rate", col="align", hue="choice", size="coherence", style="choice", facet_kws=dict(sharex=False), kind="line", legend="full", data=dots);
請(qǐng)注意大小和樣式參數(shù)是如何在散點(diǎn)和線圖中共享的,但是它們對(duì)這兩種可視化的影響是不同的(改變標(biāo)記區(qū)域和符號(hào)與線寬和虛線)。我們不需要記住這些細(xì)節(jié),讓我們專注于情節(jié)的整體結(jié)構(gòu)和我們想要傳達(dá)的信息。
統(tǒng)計(jì)估計(jì)和誤差條
通常我們感興趣的是一個(gè)變量作為其他變量的函數(shù)的平均值。許多海運(yùn)函數(shù)可以自動(dòng)執(zhí)行統(tǒng)計(jì)估計(jì),這是必要的,以回答這些問題:
fmri = sns.load_dataset("fmri")sns.relplot(x="timepoint", y="signal", col="region", hue="event", style="event", kind="line", data=fmri);
當(dāng)統(tǒng)計(jì)值被估計(jì)時(shí),seaborn將使用bootstrapping來計(jì)算置信區(qū)間并繪制代表估計(jì)不確定性的誤差條。
seaborn的統(tǒng)計(jì)估計(jì)超越了描述性統(tǒng)計(jì)。例如,還可以使用lmplot()增強(qiáng)散點(diǎn)圖,使其包含線性回歸模型(及其不確定性):
sns.lmplot(x="total_bill", y="tip", col="time", hue="smoker", data=tips
專業(yè)分類圖
標(biāo)準(zhǔn)散點(diǎn)圖和線狀圖顯示數(shù)值變量之間的關(guān)系,但許多數(shù)據(jù)分析涉及分類變量。在seaborn中有幾種專門的繪圖類型,它們經(jīng)過了優(yōu)化,用于可視化這類數(shù)據(jù)??梢酝ㄟ^catplot()訪問它們。與relplot()類似,catplot()的思想是公開一個(gè)通用的面向數(shù)據(jù)集的API,該API在一個(gè)數(shù)值變量和一個(gè)(或多個(gè))分類變量之間關(guān)系的不同表示上進(jìn)行泛化。
這些表示在表示底層數(shù)據(jù)時(shí)提供了不同的粒度級(jí)別。在最精細(xì)的層次上,你可能希望通過繪制散點(diǎn)圖來調(diào)整點(diǎn)在分類軸上的位置,這樣它們就不會(huì)重疊:
sns.catplot(x="day", y="total_bill", hue="smoker", kind="swarm", data=tips);
或者,你可以使用核密度估計(jì)來表示采樣點(diǎn)的底層分布:
sns.catplot(x="day", y="total_bill", hue="smoker", kind="violin", split=True, data=tips);
或者你可以在每個(gè)嵌套的類別中顯示唯一的平均值和它的置信區(qū)間:
sns.catplot(x="day", y="total_bill", hue="smoker", kind="bar", data=tips);
可視化數(shù)據(jù)集結(jié)構(gòu)
在seaborn中還有另外兩種圖形級(jí)別的函數(shù),可用于對(duì)多個(gè)圖塊進(jìn)行可視化。它們都是面向數(shù)據(jù)集結(jié)構(gòu)的。一個(gè)是jointplot(),專注于單一的關(guān)系:
iris = sns.load_dataset("iris")sns.jointplot(x="sepal_length", y="petal_length", data=iris);
另一個(gè)是pairplot(),它具有更廣闊的視圖,顯示了所有成對(duì)關(guān)系和邊緣分布,可選地以某個(gè)分類變量為條件:
sns.pairplot(data=iris, hue="species");
在可視化表示方面,jointplot()和pairplot()都有一些不同的選項(xiàng),它們都是建立在類的基礎(chǔ)上的,這些類允許更徹底地定制多個(gè)plot圖形(分別是JointGrid和PairGrid)。
感謝各位的閱讀,以上就是“Seaborn有哪些功能”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Seaborn有哪些功能這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。