Python:matplotlib 和 Seaborn 之散点图的重叠、透明度和抖动 (三十三)

Python:matplotlib 和 Seaborn 之散点图的重叠、透明度和抖动 (三十三)

 

重叠、透明度和抖动#

如果要绘制大量数据点,或者数字变量是离散值,那么直接使用散点图可能无法呈现足够的信息。图形可能会出现重叠,由于大量数据重叠到一起,导致很难看清变量之间的关系。

plt.scatter(data = df, x = 'disc_var1', y = 'disc_var2')

file

在上图中,我们可以推断出两个变量负相关,但是数据的变化程度和关系强度并不明显。在这种情形下,我们需要应用透明度和抖动,使散点图能呈现更多的信息。可以通过在 scatter 函数调用中添加 "alpha" 参数来表示透明度,"alpha" 的值可以介于 0(完全不透明,不可见) 到 1(完全透明)之间。

plt.scatter(data = df, x = 'disc_var1', y = 'disc_var2', alpha = 1/5)

file

重叠的点越多,图像颜色就越深。从图中可以看出,两个数字变量之间存在一定的负相关关系。x 轴上的 0 和 10 比中间值出现的频率小多了。

除了设置透明度之外,我们还可以通过抖动使每个点稍微偏离真实值所对应的位置。这并不是 scatter 函数中的直接选项,而是 seaborn 的 regplot 函数的内置选项。可以单独添加 x 轴和 y 轴抖动,不会影响到回归方程的拟合情况:

sb.regplot(data = df, x = 'disc_var1', y = 'disc_var2', fit_reg = False,
           x_jitter = 0.2, y_jitter = 0.2, scatter_kws = {'alpha' : 1/3})

抖动设置将导致每个点统一地在真实值的 ±0.2 范围内抖动。注意透明度已经更改为分配给“scatter_kws”参数的字典。这么设置的原因是让透明度明确地与 regplot 函数的 scatter 部分相关联。

file

为者常成,行者常至

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值