python seaborn画图_python数据可视化(一)seaborn介绍及绘图风格设置

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

u=923310994,756346754&fm=173&app=49&f=JPEG?w=399&h=254&s=0250453231E2CD5D5E7DA9CA0300C0B1没有设置任何风格

上面的图中,我们对风格没有做任何设置,接下来我们调用sns.set()函数来改变style,看看有何效果。

sns.set(style='white')sinplot()

u=4041463926,3513441835&fm=173&app=49&f=JPEG?w=391&h=257&s=21D0E132319E45C85E5CB1CA000080B1通过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()

u=347971384,1264148368&fm=173&app=49&f=JPEG?w=377&h=256&s=A750E1333196CDCC567CB1CA0000C0B1style=whitegrid

u=4005110262,285119048&fm=173&app=49&f=JPEG?w=379&h=259&s=8250CD3231A2ED5D4E7CA9CA0300E0B3style=darkgrid

u=878907329,1457747675&fm=173&app=49&f=JPEG?w=381&h=266&s=0450E13231D6CDCC5E7DF1CA0000A0B1style=ticks

当然,除了使用这种内置的5种风格,我们也可以通过下面几个函数做一下个性化设置。

seaborn.despine()

这个函数可以移除图像的上部和右侧的坐标轴,我们看看效果。

sinplot()sns.despine()

u=280249320,2108792642&fm=173&app=49&f=JPEG?w=372&h=262&s=0650E532B1B2CDDC5E7CB1CA0000C0B1despine()移除坐标轴

这里默认移除了上部和右侧的轴,当然我们也可以移除其他轴,只要将表示四个边的参数值改为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)

u=3327543811,605282779&fm=173&app=49&f=JPEG?w=444&h=308&s=A4D0ED323196EDDC1EF5D4DA000090B1offset=50

使用with打开某种风格

在matplotlib中我们已经学过了,在一个figure对象中,我们可以添加多个子图,那么如果不同的子图使用不同的风格,我们该如何做呢?很简单,使用with 打开某种风格,然后在with下画的图都使用with打开的分格,我们来看看代码。

with sns.axes_style("darkgrid"):plt.subplot(211)sinplot(4)plt.subplot(212)sinplot(-4)

u=872322633,821332560&fm=173&app=49&f=JPEG?w=400&h=257&s=405045323BFAC4C41861D8CB0300E0B1使用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()

u=1354819027,2715990064&fm=173&app=49&f=JPEG?w=506&h=375&s=00506032B132E5CC567D01C6000080B1context=paper

sns.set_context("talk")plt.figure(figsize=(8, 6))sinplot()

u=3706211905,3625435010&fm=173&app=49&f=JPEG?w=640&h=489&s=4A50CD10B3B2EDCC167C01DE0200E0B3context=talk

sns.set_context("poster")plt.figure(figsize=(8, 6))sinplot()

u=2586426871,557604360&fm=173&app=49&f=JPEG?w=500&h=376&s=0ED0E512318EC4EC5E7D0DDE0200E0B1context=poster

sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})

sinplot()

u=3878362478,95281358&fm=173&app=49&f=JPEG?w=404&h=262&s=44D0EC323992D8CC5E7549CE0300A0B1context=notebook

好了,对于seaborn库的风格设置,就到此为止,在后面的文章中也会用到这些风格,这里大家对风格设置的几个常用函数有个大致了解就可以了。喜欢的小伙伴点个关注,后面会持续更新!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值