matplotlib是python最常见的绘图包,强大之处不言而喻。然而在数据科学领域,可视化库-Seaborn也是重量级的存在。
由于matplotlib比较底层,想要绘制漂亮的图非常麻烦,需要写大量的代码。
Seaborn是在matplotlib基础上进行了高级API封装,图表装饰更加容易,你可以用更少的代码做出更美观的图。同时,Seaborn高度兼容了numy、pandas、scipy等库,使得数据可视化更加方便快捷。
话不多说,先来展示一下Seaborn的风采:
热力图
小提琴图
散点矩阵图
多元散点图
带边际分布的Hexbin图
下面正式开始讲解如何使用Seaborn绘图
功能简介
Seaborn让coder专注于可视化分析,提供更多高级接口,无需将过多时间用于数据处理和图表装饰,一般而言,它主要有以下功能:
- 计算多变量间关系的面向数据集接口
- 可视化类别变量的观测与统计
- 可视化单变量或多变量分布并与其子数据集比较
- 控制线性回归的不同因变量并进行参数估计与作图
- 对复杂数据进行易行的整体结构可视化
- 对多表统计图的制作高度抽象并简化可视化过程
- 提供多个内建主题渲染 matplotlib 的图像样式
- 提供调色板工具生动再现数据
安装Seaborn
安装最新版本的Seaborn非常简单,使用pip命令即可:
代码语言:javascript复制pip install seaborn
Python版本:3.6.x
Seaborn的依赖库有:numpy、scipy、matplotlib、pandas
导入Seaborn库,一般使用:
代码语言:javascript复制import seaborn as sns
查看Seaborn版本:
代码语言:javascript复制sns.__version
# 本文使用最新版本:0.9.0
风格管理
Seaborn装载了一些默认主题风格,通过sns.set()方法实现。
sns.set()可以设置5种风格的图表背景:darkgrid, whitegrid, dark, white, ticks,通过参数style设置,默认情况下为darkgrid风格:
更改为whitegrid风格:
你还可以通过改变参数palette来调整颜色:
提示:有人会问上面的代码从哪加载数据集?是这样的,Seaborn会内置一些数据集,通过load_data()方法加载 大家有兴趣可以去官方教程看看有哪些内置数据集 本文都会用Seaborn内置数据集讲解案例
点、线混合绘图函数 - relplot()
relplot()是seaborn中非常重要的绘图函数,它可以用于绘制散点图和线图,通过参数kind改变绘图类型。
- 散点图:relplot(kind='scatter')
- 线图:relplot(kind='line')
注:默认情况下为散点图
举个例子:
上面加载了内置数据集-tips(小费数据集),并对total_bill和tip字段绘制散点分布图。
tips数据集:
tips数据集字段说明:
- total_bill:总消费
- tip:小费
- sex:性别
- smoker:是否吸烟
- day:周几
- time:用餐类型
前面绘制了total_bill(总消费)和tip(小费)的散点关系图,我们可以清晰地看到这两者成正相关性。
如果在上面的基础上再区分时间,显示这次消费属于一周的周几,并用不同颜色标记点
传递参数 hue='day':
性别不同会对这个分布关系产生影响,我们绘制男、女两张图表
传递参数 col='sex':
性别不同、用餐类型也不同的情况下,分布是什么样的,可以绘制多张图表
传递参数 col='sex',row='time':
你也可以绘制线图,只需要传递参数kind='line':
lineplot()和scatter()函数
lineplot()和scatter()分别用于绘制线图和散点图,前面说过relplot()函数已经覆盖这两个绘图功能,所以就不赘述了,有意者可以自研。
绘制线性回归模型-lmplot()函数
lmplot()函数用以绘制回归模型,描述线性关系。
依然以小费数据集为例:
这是一个散点图 线性回归 95%置性区间的组合图
你调整置性区间的大小,传递参数ci:60:
对smoker(是否吸烟)做分类处理,得到两个不同的回归曲线,
传递参数 hue='smoker' :
绘制非参数回归模型(局部加权线性回归),传递参数 lowess=True:
分类散点图 - stripplot()函数
当有一维数据是分类数据时,散点图成了条带形状,这里就用到stripplot()函数。
箱图 - boxplot()函数
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。
它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。
箱线图的绘制方法是:
- 先找出一组数据的最大值、最小值、中位数和两个四分位数;
- 然后, 连接两个四分位数画出箱子;
- 再将最大值和最小值与箱子相连接,中位数在箱子中间。
提琴图 - violinplot()函数
小提琴图结合了箱型图和密度图的特征,用于展示数据的分布形状。粗黑线表示四分数范围,延伸的细线表示95%的置信区间,白点为中位数。
小提琴图弥补了箱型图的不足,可以展示数据分布是双模还是多模。
总结
本介绍了Seaborn安装、风格配置以及各类绘图函数的使用,当然这里只是列举了小部分函数和功能,抛砖引玉,为展示seaborn的强大之处。希望Seaborn能成为大家数据科学路上的得力助手!
END