數(shù)據(jù)分析(5)--Seaborn

一、Seaborn介紹

Seaborn是一個基于matplotlib的Python數(shù)據(jù)可視化庫。它提供了一個高級界面,用于繪制有吸引力且信息豐富的統(tǒng)計圖形;是一個用Python制作統(tǒng)計圖形的庫。建立在matplotlib之上,并pandas數(shù)據(jù)結(jié)構(gòu)緊密集成。

二、Seaborn和matplotlib對比

首先我們導(dǎo)入所需要的模塊
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
實例:

  • 需求:畫一個花瓣(petal)和花萼(sepal)長度的散點圖,并且點的顏色要區(qū)分鳶尾花的種類
    實例:
iris = pd.read_csv(r'C:\Users\taoxiao\Desktop\project\o25mso\homework/iris.csv')
print('****************')
print(iris.Name.unique())#返回name這列唯一的值
print('****************')
color_map = dict(zip(iris.Name.unique(), ['blue','green','red']))
gp_data = iris.groupby('Name')#通過name分組
print(gp_data.groups)

運行結(jié)果:

運行結(jié)果

實例:

  • matplotlibseaborn繪畫散點圖
#matplotlib繪制散點圖
for species, group in iris.groupby('Name'):
    plt.scatter(group['PetalLength'], group['SepalLength'],
                color=color_map[species],
                alpha=0.3, edgecolor=None,
                label=species)
plt.legend(frameon=True, title='Name')
plt.xlabel('petalLength')
plt.ylabel('sepalLength')
#seabron繪制散點圖
sns.lmplot('PetalLength', 'SepalLength', iris, hue='Name', fit_reg=False)

運行結(jié)果:

matplotlib繪制

seabron繪制

三、seaborn實現(xiàn)柱狀圖和熱力圖

數(shù)據(jù)展示實例:

df = sns.load_dataset('flights')
print(df.head())
print('***************')
print(df.shape)
print('***************')
#做一個數(shù)據(jù)的轉(zhuǎn)換處理
df = df.pivot(index='month', columns='year', values='passengers')
df

運行結(jié)果:

運行結(jié)果

繪圖實例:

#繪制熱力圖
sns.heatmap(df, annot=True, fmt='d')
df.plot()

運行結(jié)果:

熱力圖

seabron柱狀圖實例:

s = df.sum()

print(s.index)
print(s.values)
#繪制柱狀圖
sns.barplot(x=s.index, y=s.values

運行結(jié)果:

運行結(jié)果

matplotlibz柱狀圖實例:s.plot(kind='bar')

運行結(jié)果

四、seaborn實現(xiàn)直方圖和密度圖

  • matplotlib直方圖和密度圖
s1 = Series(np.random.randn(1000))
#直方圖
plt.hist(s1)

i運行結(jié)果

密度圖

s1.plot(kind='kde')
運行結(jié)果
#直方圖
sns.distplot(s1, bins=20, hist=True, kde=False, rug=True)
直方圖
#密度圖
sns.kdeplot(s1, shade=True, color='r')
密度圖

四、Seaborn設(shè)置圖形顯示效果

  • matplitlib繪圖
    實例:
x = np.linspace(0,14,100)
#定義一個函數(shù)繪兩個圖
def sinplot():
    plt.plot(x, y1)
    plt.plot(x, y2)
sinplot()
運行結(jié)果
  • seabron繪制效果
import seaborn as sns
sinplot()
運行結(jié)果
  • 設(shè)置繪圖風(fēng)格
style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()

運行結(jié)果

實例:

style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()
運行結(jié)果
sns.set()#設(shè)置繪圖風(fēng)格清空
sns.set_style('white')#設(shè)置背景為白色
sinplot()
運行結(jié)果
  • plotting_context() and set_context()
context = ['paper', 'notebook', 'talk', 'poster']
sns.set_context(context[1], rc={'grid.linewidth': 3.0})
sinplot()
sns.set()#設(shè)置為默認
sns.plotting_context()#查看參數(shù)
運行結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容