讓圖形變得精緻:seaborn繪圖基礎

1、seaborn的優點

  • 它簡化了複雜數據集的表示;

  • 可以輕鬆構建複雜的可視化,簡潔的控制matplotlib圖形樣式與幾個內置主題;

  • seaborn不可以替代matplotlib,而是matplotlib的很好補充;

2、seaborn的官網

學習某個知識點,最好的東西就是照着官網的提示學習,因爲官網裏面的知識點,夠完整、夠全面。seaborn的官網鏈接:http://seaborn.pydata.org

圖片

3、seaborn的作者介紹

圖片

4、seaborn的縮寫爲什麼是sns,而不是sbn?

sns的使用來自於一個內部笑話,與美劇The West Wing有關。這部劇裏有一個人物,名叫Samual Norman Seaborn,首字母簡寫爲sns,因此最終簡寫爲sns。

5、seaborn與matplotlib的關係?

seaborn是matplotlib的更高級的封裝。因此學習seaborn之前,首先要知道matplotlib的繪圖原理。

我們知道,使用matplotlib繪圖,需要調節大量的繪圖參數,需要記憶的東西很多。而seaborn基於matplotlib做了更高級的封裝,使得繪圖更加容易,它不需要了解大量的底層參數,就可以繪製出很多比較精緻的圖形。不僅如此,seaborn還兼容numpy、pandas數據結構,在組織數據上起了很大作用,從而更大程度上的幫助我們完成數據可視化。

最關鍵:seaborn是matplotlib的更高級的封裝。也就是說,對於matplotlib的那些調優參數設置,也都可以在使用seaborn繪製圖形之後使用。
  

6、使用seaborn繪圖的3種方式

  • plt.style.use(“seaborn”):只是說調用了seaborn的繪圖樣式,並不能真正體現seaborn繪圖的好處。

  • sns.set():使用了這個方法後,所有之前寫過的matplotlib中的參數都還原了。因此,像設置中文字體顯示、設置負號的正常顯示,都必須放在sns.set()這句代碼之後。

  • 直接調用seaborn函數繪圖:這種方式能真正體現seaborn繪圖的優勢,也是我們經常使用的繪圖方式。(最常用)

1)plt.style.use(“seaborn”)

df = pd.read_excel("data.xlsx",sheet_name="數據源")
df1 = df.groupby("品牌").agg({"銷售數量":np.sum})

# 使用matplotlib風格繪圖
plt.bar(x=df1.index,height=df1["銷售數量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_1",dpi=300)

# 使用seaborn風格繪圖
plt.style.use("seaborn")
plt.bar(x=df1.index,height=df1["銷售數量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_2",dpi=300)










結果如下:

圖片
圖片

2)sns.set()

這個方法裏面有幾個參數,但是在實際中,我們都使用默認值即可,因爲默認參數繪圖就已經很好看啦,並不需要我們特意去設置。

① 常用參數:sns.set(style=, context=, font_scale=)
style設置繪圖的樣式。
context一般使用默認樣式即可,不需要我們自己設置。默認是context=“notebook”。
font_scale控制座標軸的刻度,一般設置爲font_scale=1.2即可。
② 演示如下



df = pd.read_excel("data.xlsx",sheet_name="數據源")
df1 = df.groupby("品牌").agg({"銷售數量":np.sum})

# 使用matplotlib風格繪圖
plt.bar(x=df1.index,height=df1["銷售數量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_3",dpi=300)

# 使用seaborn風格繪圖
sns.set()
plt.rcParams["font.sans-serif"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False

plt.bar(x=df1.index,height=df1["銷售數量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_4",dpi=300)













結果如下:

圖片
圖片

3)直接調用seaborn函數繪圖(最常用):seaborn繪圖的優勢體現

df = pd.read_excel("data.xlsx",sheet_name="數據源")

sns.set_style("dark")
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 注意:estimator表示對分組後的銷售數量求和。默認是求均值。
sns.barplot(x="品牌",y="銷售數量",data=df,color="steelblue",orient="v",estimator=sum)
plt.savefig(r"G:\6Tipdm\2 python繪圖\seaborn\picture\seaborn繪圖方式_5",dpi=300)







結果如下:

圖片
注意:直接調用seaborn函數繪圖的好處在這個代碼中有很好的體現。可以看出,如果直接使用matplotlib中的代碼繪圖,需要先對數據集進行分組聚合,然後才能繪製最後的圖形。【優勢】:直接使用sns.barplot()函數繪圖,barplot可以直接將 groupby 分組後的結果按照指定的彙總方式進行可視化展示,並不需要我們實現對數據進行處理。

歡迎掃碼關注作者的CSDN:

圖片

PS:灰常感謝黃同學的投稿,同時也歡迎關注了【可樂的數據分析之路】公衆號的小夥伴們踊躍投稿哦~本文的讚賞及第二天的流量主都會給到原作者。


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