向seaborn传递matplotlib绘图参数,精细地控制seaborn输出图形

1. matplotlib与seaborn的关系

matplotlib绘图参数非常多,可以通过参数精细的控制图形输出,这是它的优点。但同时也很复杂,绘一个图常常需要很多行代码,需要使用者熟悉众多图形控制参数,不容易上手,这是它的缺点。seaborn是基于matplotlib的数据可视化软件包,本身并不画图,而是调用matplotlib进行绘图,在做探索式数据分析时,特别是对于dataframe数据结构,seaborn比matplotlib高效得多,简单的图只要1-2行代码就可以完成。为了简单易用,将很多matplotlib的用于图形精细控制、跟数据分析关系不大的参数(如线宽、数据点大小,透明度等),放到一个参数集合中提供调用,因此如果在使用seaborn进行数据分析时,如果需要对图形对进行一些小对修改,往往需要向seaborn传递matplotlib参数。

2. 向seanborn画图函数传递matplotlib绘图参数

以seanborn 的lmplot为例,说明如何向seanborn画图函数传递matplotlib参数。

seaborn.lmplot(x, y, data, hue=None, col=None, row=None, ... scatter_kws=None, line_kws=None, size=None)

其中scatter_kws=None, line_kws=None是可以用字典等格式作向seaborn传递matplotlib参数。

sns.set(style="darkgrid") 
grid = sns.lmplot(x='YEARS_EXPERIENCE', y='BASE_SALARY', hue='GENDER', data=employee)

图形输出如下:

数据点太多来,重合比较厉害,想把数据点等大小调小一点,但 sns.lmplot并没有控制数据点大小但参数,需要调用matplotlib.pyplot.scatter的参数。

matplotlib.pyplot.scatter的参数如下:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, plotnonfinite=False, data=None, **kwargs)

其中,参数s控制数据点的大小,我们可以在seaborn中通过scatter_kws={'s':10}可以将matplotlib参数s=10传递给seaborn。

sns.set(style="darkgrid") 
grid = sns.lmplot(x='YEARS_EXPERIENCE', y='BASE_SALARY', hue='GENDER', 
scatter_kws={'s':10}, data=employee)

图形输出如下:

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值