第五章. 可视化数据分析图

5.7 Seaborn图表

Seaborn是一个基于Matplotlib的高级可视化效果库,偏向于统计图表,主要针对的是数据挖掘和机器学习中的变量特征选取,相比Matplotlib,他的语法相对简单,但是具有一定的局限性,本节主要介绍线性回归模型,箱型图,核密度图,提琴图。

1.线性回归模型 (seaborn.lmplot)

Seaborn可以直接绘制线性回归模型,用于描述线性关系。

1).语法:

seaborn.lmplot(x=None, y=None, data=None, hue=None, col=None, row=None,palette=None, col_wrap=3, size=5, markers="o")

参数说明:
x, y:x,y轴数据
data:数据集
hue:散点图中的分类字段
col:列分类变量,构成子集
row:行分类变量
col_wrap:控制每行子图的数量
size:控制子图的高度
markers:点的形状

2).示例:

Excel中的数据:
在这里插入图片描述
代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet9')
print(df)

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 绘制线性回归模型
sns.lmplot(x='总收入(千元)', y='利润(千元)', data=df)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

2.箱型图 (seaborn.boxplot)

1).语法:

seaborn.boxplot(x=None, y=None,data=None, hue=None,order=None,hue_order=None,orient=None, color=None, palette=None, saturation=.75, width=.8,notch=False)

参数说明:
x,y:x,y轴数据
data:数据集
hue:分类字段
width:箱形图的宽度
notch:中间箱体是否显示缺口,默认值False

2).示例:

Excel中的数据:
在这里插入图片描述
代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet9')
print(df)

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

#绘制箱型图
sns.boxplot(x='是否为工作日', y='总收入(千元)',hue='是否为工作日', data=df)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述
从上图得知,数据存在 异常值(上图中的红色框框)。箱型图实际上就是利用数据的分位数来识别数据的异常点,这一特点使得箱型图在学术界和工业界的应用非常广泛

3.核密度图 (seaborn.kdeplot)

核密度在概率论中用来估计未知的密度函数,属于非参数检验的方法之一,通过核密度图可以比较直观的看出数据本身的分布数据。

1).语法:

seaborn.kdeplot(x=None, y=None, data=None,hue=None,shade=True )

参数说明:
x,y:x,y轴数据
data:数据集
hue:分类字段
shade:是否带阴影,默认值为True

2).示例1:

代码:

import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 调用seaborn自带的数据集
df = sns.load_dataset('iris')

# 绘制多个变量的核密度图
p1 = sns.kdeplot(df['sepal_width'], shade=True, color='r')
p1 = sns.kdeplot(df['sepal_length'], shade=True, color='b')

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

3).示例2:边际核密度图

代码:

import matplotlib.pyplot as plt
import seaborn as sns

# sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 调用seaborn自带的数据集
df = sns.load_dataset('iris')

# 绘制多个变量的核密度图
sns.jointplot(x=df['sepal_length'], y=df['sepal_width'], shade=True, kind='kde', space=0)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

4.提琴图 (seaborn.violinplot)

提琴图结合了箱型图和核密度图的特性,用于展示数据的分布情况,粗黑线表示四分数范围,延长的细线表示95%的置信区间,白点为中位数。提琴图弥补了箱型图的不足,可是展示数据分布是双模还是多模

1).语法:

seaborn.violinplot(x=None, y=None,data=None,hue=None, order=None, hue_order=None)

参数说明:
x,y:x,y轴数据
data:数据集
hue:分类字段

2).示例:

Excel中的数据:
在这里插入图片描述
代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet9')
print(df)

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 绘制提琴图
sns.violinplot(x='是否为工作日', y='总收入(千元)',hue='是否为工作日', data=df)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

注意:代码中所涉及到的函数和参数,在图表的常用设置1图表的常用设置2 有所介绍

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐