一、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é)果
實例:
-
matplotlib和seaborn繪畫散點圖
#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é)果