Seaborn

概述


Seaborn是matplotlib的强大的一个扩展。

Seaborn和matplotlib对比


数据准备

首先导入数据,数据事先准备好的是一些花的品种,其他列分别表示花萼的长度\宽度、花瓣的长度\宽度
Seaborn

花的品种一共三种:
Seaborn

需求

要求画出花萼和花瓣的长度的散点图,并且颜色要区分花的种类

实施

首先根据花的种类定义好每种类花的颜色:
Seaborn

使用matplotlib画图

Seaborn

使用seaborn画图

Seaborn

seaborn比matplotlib画散点图简单的多,只需要一行代码就搞定。

seaborn实现直方图和密度图


回顾matplotlib绘制直方图和密度图的方法

Seaborn

用seaborn distplot绘制

seaborn有一个强大的方法:distplot,它支持一些参数:

bins:直方图的分块
hist:True表示绘制直方图,默认为True
kde:True表示绘制密度图,默认为True
rug:显示分布情况,默认为False不显示

Seaborn

可以看到,seaborn同时画出了直方图和密度图。

Seaborn

只画出直方图

Seaborn

可以在下面看出数据分布情况

用seaborn kdeplot绘制密度图

直接传入数据就可以画出密度图:
Seaborn

shade参数可以填充密度曲线下面的部分:
Seaborn

也可以通过color参数指定颜色:
Seaborn

seaborn实现柱状图和热力图


数据准备

seaborn提供了一个load_dataset方法可以在线的下载数据作为实验,这里就用这个方法生成实验数据:
Seaborn

load_dataset实现的源码在https://github.com/mwaskom/seaborn/blob/master/seaborn/utils.py

原始数据加工

Seaborn

绘制热力图

seaborn提供了heatmap方法用于绘制热力图:
Seaborn

参数annot=True,fmt='d'可以在热力图中让每一个方块显示具体的值:
Seaborn

绘制柱状图

柱状图横坐标为年份,纵坐标为这一年所有月份乘客的和:

首先使用sum方法计算出每一年乘客的和:
Seaborn

其中index为年份,values为这一年乘客的和

seaborn提供了barplot方法华柱状图,只需要在参数中指定x和y坐标即可:
Seaborn

seaborn设置图形显示的效果


数据准备

绘制sin函数图像,自变量为等差数列:
Seaborn

使用matplotlib绘图的效果

Seaborn

使用seaborn绘图

设置显示主题

seaborn提供可绘图的5种风格主题:’darkgrid’, ‘dark’, ‘white’, ‘whitegrid’, ‘ticks’

可以使用set_style来指定绘图的主题:
Seaborn

Seaborn

Seaborn

Seaborn

Seaborn

对当前主题进行微调

方法:axes_style可以显示当前的主题的参数:
Seaborn

比如说在其中,grid.color控制网格颜色,想要修改这个值,可以将这个字典传入set_style中:
Seaborn

但是现在再通过axes_style查看,发现已经修改了其中的值:
Seaborn

也就是说,之后再使用这个主题,边框颜色都会变成红色。

想要恢复默认的风格参数,可以这样做:
Seaborn

更改曲线的属性

seaborn预设了四种线条风格:’paper’, ‘notebook’, ‘talk’, ‘poster’

set_context方法可以设置线条的粗细:
Seaborn

plotting_context方法可以显示当前线条风格的参数:
Seaborn

和前面一样,假设想要设置线条粗细,可以更改‘lines.linewidth’: 2.8000000000000003,这个参数:
Seaborn

和之前略有区别的是,参数字典不是直接传入的,而是赋给rc位置参数

同样的,经过设置,它的这个参数的值已经改变:
Seaborn

想要恢复默认值可以通过sns.set()进行恢复。

seaborn强大的调色功能


使用matplotlib绘图

Seaborn

plt.figure(figsize=(8,8))指定了图像大小为8*8

现在整体的风格是matplotlib的风格,整体背景白色,曲线颜色取值是随机的。

seaborn调色板

获取色板

color_palette方法可以创建一个调色板,在不适用任何参数的时候会返回现在系统使用的调色板:
Seaborn

其中每个元组有三个元素,代表RGB三原色。

上边的不能直观显示色板颜色,可以调用palplot方法来显示色板的颜色:
Seaborn

seaborn提供了’deep’, ‘muted’, ‘pastel’, ‘bright’, ‘dark’, ‘colorblind’这么几种颜色样式:
Seaborn

可以通过这种方法获取到所需的色板,然后应用到图片中。

设置色板

Seaborn

设置色板之后运行绘图函数,发现绘制图像线条的颜色就都是从色板中抽取的颜色。

恢复色板

和之前一样,只需要指定sns.set()即可恢复默认设定。

使用with进行调色

with语句内部的画图语句将会使用自定义的色板,with之外的语句将使用默认画板:
Seaborn

自定义色板

系统默认色板有6个颜色,图像会循环取这6个颜色,当线条比较多的时候会造成颜色重复,所以我们可以自定义色板:
Seaborn

这样就自定义了自己的色板,数量大于6个也是没有问题的。

但这种方式不是很方便,因为要自定义RGB的数值,还有更简便的方法:
Seaborn

这样,定义了指定长度的色板,然后就可以用这个色板来绘图了:
Seaborn