它簡(jiǎn)化了復(fù)雜數(shù)據(jù)集的表示;
可以輕松構(gòu)建復(fù)雜的可視化,簡(jiǎn)潔的控制matplotlib圖形樣式與幾個(gè)內(nèi)置主題;
seaborn不可以替代matplotlib,而是matplotlib的很好補(bǔ)充;
學(xué)習(xí)某個(gè)知識(shí)點(diǎn),最好的東西就是照著官網(wǎng)的提示學(xué)習(xí),因?yàn)楣倬W(wǎng)里面的知識(shí)點(diǎn),夠完整、夠全面。seaborn的官網(wǎng)鏈接:http://seaborn.pydata.org
sns的使用來(lái)自于一個(gè)內(nèi)部笑話,與美劇The West Wing有關(guān)。這部劇里有一個(gè)人物,名叫Samual Norman Seaborn,首字母簡(jiǎn)寫(xiě)為sns,因此最終簡(jiǎn)寫(xiě)為sns。
seaborn是matplotlib的更高級(jí)的封裝。因此學(xué)習(xí)seaborn之前,首先要知道m(xù)atplotlib的繪圖原理。
我們知道,使用matplotlib繪圖,需要調(diào)節(jié)大量的繪圖參數(shù),需要記憶的東西很多。而seaborn基于matplotlib做了更高級(jí)的封裝,使得繪圖更加容易,它不需要了解大量的底層參數(shù),就可以繪制出很多比較精致的圖形。不僅如此,seaborn還兼容numpy、pandas數(shù)據(jù)結(jié)構(gòu),在組織數(shù)據(jù)上起了很大作用,從而更大程度上的幫助我們完成數(shù)據(jù)可視化。
最關(guān)鍵:seaborn是matplotlib的更高級(jí)的封裝。也就是說(shuō),對(duì)于matplotlib的那些調(diào)優(yōu)參數(shù)設(shè)置,也都可以在使用seaborn繪制圖形之后使用。
??
plt.style.use(“seaborn”):只是說(shuō)調(diào)用了seaborn的繪圖樣式,并不能真正體現(xiàn)seaborn繪圖的好處。
sns.set():使用了這個(gè)方法后,所有之前寫(xiě)過(guò)的matplotlib中的參數(shù)都還原了。因此,像設(shè)置中文字體顯示、設(shè)置負(fù)號(hào)的正常顯示,都必須放在sns.set()這句代碼之后。
直接調(diào)用seaborn函數(shù)繪圖:這種方式能真正體現(xiàn)seaborn繪圖的優(yōu)勢(shì),也是我們經(jīng)常使用的繪圖方式。(最常用)
df = pd.read_excel("data.xlsx",sheet_name="數(shù)據(jù)源")
df1 = df.groupby("品牌").agg({"銷(xiāo)售數(shù)量":np.sum})
# 使用matplotlib風(fēng)格繪圖
plt.bar(x=df1.index,height=df1["銷(xiāo)售數(shù)量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_1",dpi=300)
# 使用seaborn風(fēng)格繪圖
plt.style.use("seaborn")
plt.bar(x=df1.index,height=df1["銷(xiāo)售數(shù)量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_2",dpi=300)
結(jié)果如下:
這個(gè)方法里面有幾個(gè)參數(shù),但是在實(shí)際中,我們都使用默認(rèn)值即可,因?yàn)槟J(rèn)參數(shù)繪圖就已經(jīng)很好看啦,并不需要我們特意去設(shè)置。
① 常用參數(shù):sns.set(style=, context=, font_scale=)
style設(shè)置繪圖的樣式。
context一般使用默認(rèn)樣式即可,不需要我們自己設(shè)置。默認(rèn)是context=“notebook”。
font_scale控制坐標(biāo)軸的刻度,一般設(shè)置為font_scale=1.2即可。
② 演示如下
df = pd.read_excel("data.xlsx",sheet_name="數(shù)據(jù)源")
df1 = df.groupby("品牌").agg({"銷(xiāo)售數(shù)量":np.sum})
# 使用matplotlib風(fēng)格繪圖
plt.bar(x=df1.index,height=df1["銷(xiāo)售數(shù)量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_3",dpi=300)
# 使用seaborn風(fēng)格繪圖
sns.set()
plt.rcParams["font.sans-serif"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
plt.bar(x=df1.index,height=df1["銷(xiāo)售數(shù)量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_4",dpi=300)
結(jié)果如下:
df = pd.read_excel("data.xlsx",sheet_name="數(shù)據(jù)源")
sns.set_style("dark")
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 注意:estimator表示對(duì)分組后的銷(xiāo)售數(shù)量求和。默認(rèn)是求均值。
sns.barplot(x="品牌",y="銷(xiāo)售數(shù)量",data=df,color="steelblue",orient="v",estimator=sum)
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_5",dpi=300)
結(jié)果如下:
聯(lián)系客服