如果想单独一对一辅导学习C++、Java、Python编程语言的可以加微信咨询
1.Seaborn 可视化
1.1 Seaborn简介
- Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。
- Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。
- Seaborn和Pandas的API配合的很好,使用DataFrame/Series的数据就可以绘图
1.2 Seaborn单变量数据可视化
-
导包加载数据
import seaborn as sns import pandas as pd tips = pd.read_csv('data/tips.csv')
1.2.1 sns.displot
-
使用sns.displot创建直方图
sns.displot(tips['total_bill'])
显示结果
1.3 Seaborn 双变量数据可视化
1.3.1 sns.regplot
- regplot函数可以创建散点图,同时还会拟合回归线。参数fit_reg设置为False,将只显示散点图
sns.regplot(x='total_bill',y='tip',data=tips)
显示结果
1.3.2 sns.jointplot
- jointplot在每个轴上创建包含单个变量的直方图。
sns.jointplot(x='total_bill',y='tip',data = tips)
显示结果
- jointplot绘制蜂巢图
sns.jointplot(x='total_bill',y='tip',data = tips,kind='hex')
显示结果
1.3.3 sns.barplot
- 条形图也可以用于展现多个变量
# 按照time进行分组,对total_bill进行聚合操作,默认是求平均的聚合函数,estimator可以接收别的聚合函数如sum
sns.barplot(x='time',y='total_bill',data=tips)
显示结果
1.3.4 sns.boxplot
- 箱线图用于显示多种统计信息:最小值,1/4分位,中位数,3/4分位,最大值,以及离群值(如果有)
sns.boxplot(x='time',y='total_bill',data = tips)
显示结果
1.3.5 sns.pairplot
- 当大部分数据是数值时,可以使用pairplot函数把所有成对关系绘制出来
- pairplot函数会为单变量绘制直方图,双变量绘制散点图
sns.pairplot(tips)
显示结果
- pairplot的缺点是存在冗余信息,图的上半部分和下半部分相同
- 可以使用pairgrid手动指定图的上半部分和下半部分
pair_grid = sns.PairGrid(tips)
pair_grid.map_upper(sns.regplot)
pair_grid.map_lower(sns.kdeplot)
pair_grid.map_diag(sns.histplot)
显示结果
1.4 多变量数据
- 绘制多变量数据没有标准的套路
- 如果想在图中包含更多信息,可以使用颜色、大小和形状来区分它们
1.4.1 通过颜色区分
- 使用violinplot(小提琴图)函数时,可以通过hue参数按性别(sex)给图着色
- 可以为“小提琴”的左右两半着不同颜色,用于区分性别
sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)
显示结果
- 其它绘图函数中也存在hue参数
sns.lmplot(x='total_bill',y='tip',data = tips,hue='sex',fit_reg = False)
显示结果
- 通过向hue参数传入一个类别变量,可以让pairplot变得更有意义
sns.pairplot(tips,hue = 'sex')
显示结果
1.4.2 通过大小和形状区分
-
可以通过点的大小表示更多信息,但通过大小区分应谨慎使用,当大小差别不大时很难区分
-
在Seaborn中的lmplot,可以通过scatter_kws参数来控制散点图点的大小
sns.lmplot(x='total_bill',y='tip',data = tips,fit_reg=False,hue='sex',markers=['o','x'])
显示结果
1.5 Seaborn主题和样式
-
上面的Seaborn图都采用了默认样式,可以使用sns.set_style函数更改样式。
-
该函数只要运行一次,后续绘图的样式都会发生变化
-
Seaborn有5中样式
- darkgrid 黑色网格(默认)
- whitegrid 白色网格
- dark 黑色背景
- white 白色背景
- ticks
sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)
显示结果
- 通过set_style设置样式
sns.set_style('whitegrid')
sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)
显示结果
总结
- Seaborn是对Matplotlib以及Pandas的封装,与Series,DataFrame的API配合很好
- Seaborn的API非常简单
- 推荐使用Seaborn或Pandas进行绘图,如果需要对图形控制比较精细,可以使用Matplotlib