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

一、seaborn的優勢

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

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

  • seaborn不能夠替代matplotlib,而是matplotlib的很好補充;ide

二、seaborn的官網

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

圖片

三、seaborn的做者介紹

圖片

四、seaborn的縮寫爲何是sns,而不是sbn?

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

五、seaborn與matplotlib的關係?

seaborn是matplotlib的更高級的封裝。所以學習seaborn以前,首先要知道matplotlib的繪圖原理。字體

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

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

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

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

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

  • 直接調用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:灰常感謝黃同窗的投稿,同時也歡迎關注了【可樂的數據分析之路】公衆號的小夥伴們踊躍投稿哦~本文的讚揚及次日的流量主都會給到原做者。

相關文章
相關標籤/搜索