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