seaborn库是对matplotlib库更高级别的封装,相当于提供了各种统计图的模板,我们只需要将自己的数据传入相应的方法即可,所以说,如果你学懂了前面matplotlib中的基础绘图方法的话,学习本主题内容将非常轻松(注:由于系统编辑器限制,所有代码行有加粗的无序列表表示。)
首先,我们还是来看一下seaborn库主要学习的内容及篇幅安排。
seaborn整体布局及风格设置seaborn调色板及颜色设置seaborn单变量分析绘图(直方图、条形图)seaborn回归分析绘图seaborn绘制散点图(分布散点图、分簇散点图)seaborn绘制盒图、小提琴图seaborn绘制热度图seaborn多图绘制及facetgrid使用方法对于seaborn库的内容,拆分比较细,这样做的目的是一是想每篇文章具有一定的针对性,而是想看每篇文章的时间不要太长,希望大家能够理解。好了,下面我们正式进入学习。
seaborn.set()设置风格
首先,看一下seaborn.set()函数参数:seaborn.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=True, rc=None),从这个set()函数,可以看出,通过它我们可以设置背景色、风格、字型、字体等。下面我们通过例子看看。首先,导入相关依赖包。注意这里的#%matplotlib inline是jupyter notebook内置的一个魔法函数,有了%matplotlib inline 就可以省掉plt.show()了。
import seaborn as snsimport numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt%matplotlib inline然后,我们定义一个函数,这个函数主要是生成100个0到15的变量,然后用这个变量画出6条曲线。
def sinplot(flip=2):x = np.linspace(0, 15, 100)for i in range(1, 6):plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)#调用这个函数sinplot
没有设置任何风格
上面的图中,我们对风格没有做任何设置,接下来我们调用sns.set()函数来改变style,看看有何效果。
sns.set(style='white')sinplot()
通过set()函数设置style=white效果
那么,问题来了,有人会说,这个set()函数这么多参数,只要改变其中任意一个参数的值,绘图效果就会发生变化,那我们怎么知道哪种搭配是最佳效果呢,难道我们要一个个去测试吗?当然不是,seaborn提供了5种默认的风格,我们在实际绘图中只要选择一种喜欢的风格就可以了,下面我们就看看这5种风格的用法及效果。
seaborn.set_style()使用5种默认风格
函数参数:seaborn.set_style(style=None, rc=None),这里style可选参数值有:darkgrid,whitegrid,dark,white,ticks,下面我们就通过设置不同的风格,看看每种风格的效果。
sns.set(style='white')sns.set(style='whitegrid')sns.set(style='darkgrid')sns.set(style='dark')sns.set(style='ticks')sinplot()
style=whitegrid
style=darkgrid
style=ticks
当然,除了使用这种内置的5种风格,我们也可以通过下面几个函数做一下个性化设置。
seaborn.despine()
这个函数可以移除图像的上部和右侧的坐标轴,我们看看效果。
sinplot()sns.despine()
despine()移除坐标轴
这里默认移除了上部和右侧的轴,当然我们也可以移除其他轴,只要将表示四个边的参数值改为true即可,下面是个这个函数的参数seaborn.despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False),其中offset表示偏离左侧轴的距离。
sns.set(style='ticks')sinplot()sns.despine(offset=50)
offset=50
使用with打开某种风格
在matplotlib中我们已经学过了,在一个figure对象中,我们可以添加多个子图,那么如果不同的子图使用不同的风格,我们该如何做呢?很简单,使用with 打开某种风格,然后在with下画的图都使用with打开的分格,我们来看看代码。
with sns.axes_style("darkgrid"):plt.subplot(211)sinplot(4)plt.subplot(212)sinplot(-4)
使用with使每个子图使用不同的风格
seaborn.set_context()
seaborn.set_context(context=None, font_scale=1, rc=None)这个函数也是来设置绘图背景参数的,它主要来影响标签、线条和其他元素的效果,但不会影响整体的风格,跟style有点区别。这个函数默认使用notebook,其他context可选值有:paper, talk, poster。下面我们看看具体的效果。
sns.set_context("paper")plt.figure(figsize=(8, 6))sinplot()
context=paper
sns.set_context("talk")plt.figure(figsize=(8, 6))sinplot()
context=talk
sns.set_context("poster")plt.figure(figsize=(8, 6))sinplot()
context=poster
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
sinplot()
context=notebook
好了,对于seaborn库的风格设置,就到此为止,在后面的文章中也会用到这些风格,这里大家对风格设置的几个常用函数有个大致了解就可以了。喜欢的小伙伴点个关注,后面会持续更新!