一、Seaborn介绍
Seaborn是一个基于matplotlib的Python数据可视化库。它提供了一个高级界面,用于绘制有吸引力且信息丰富的统计图形;是一个用Python制作统计图形的库。建立在matplotlib之上,并pandas数据结构紧密集成。
二、Seaborn和matplotlib对比
首先我们导入所需要的模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
实例:
- 需求:画一个花瓣
(petal)和花萼(sepal)长度的散点图,并且点的颜色要区分鸢尾花的种类
实例: 
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)
运行结果:

运行结果
实例:
- 
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)
运行结果:

matplotlib绘制

seabron绘制
三、seaborn实现柱状图和热力图
数据展示实例:
df = sns.load_dataset('flights')
print(df.head())
print('***************')
print(df.shape)
print('***************')
#做一个数据的转换处理
df = df.pivot(index='month', columns='year', values='passengers')
df
运行结果:

运行结果
绘图实例:
#绘制热力图
sns.heatmap(df, annot=True, fmt='d')
df.plot()
运行结果:

热力图
seabron柱状图实例:
s = df.sum()
print(s.index)
print(s.values)
#绘制柱状图
sns.barplot(x=s.index, y=s.values
运行结果:

运行结果
matplotlibz柱状图实例:s.plot(kind='bar')

运行结果
四、seaborn实现直方图和密度图
- matplotlib直方图和密度图
 
s1 = Series(np.random.randn(1000))
#直方图
plt.hist(s1)

i运行结果
密度图
s1.plot(kind='kde')

运行结果
#直方图
sns.distplot(s1, bins=20, hist=True, kde=False, rug=True)

直方图
#密度图
sns.kdeplot(s1, shade=True, color='r')

密度图
四、Seaborn设置图形显示效果
- matplitlib绘图
实例: 
x = np.linspace(0,14,100)
#定义一个函数绘两个图
def sinplot():
    plt.plot(x, y1)
    plt.plot(x, y2)
sinplot()

运行结果
- seabron绘制效果
 
import seaborn as sns
sinplot()

运行结果
- 设置绘图风格
 
style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()

运行结果
实例:
style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()

运行结果
sns.set()#设置绘图风格清空
sns.set_style('white')#设置背景为白色
sinplot()

运行结果
- plotting_context() and set_context()
 
context = ['paper', 'notebook', 'talk', 'poster']
sns.set_context(context[1], rc={'grid.linewidth': 3.0})
sinplot()
sns.set()#设置为默认
sns.plotting_context()#查看参数

运行结果