重叠、透明度和抖动
如果要绘制大量数据点,或者数字变量是离散值,那么直接使用散点图可能无法呈现足够的信息。图形可能会出现重叠,由于大量数据重叠到一起,导致很难看清变量之间的关系。
plt.scatter(data = df, x = 'disc_var1', y = 'disc_var2')
image.png
在上图中,我们可以推断出两个变量负相关,但是数据的变化程度和关系强度并不明显。在这种情形下,我们需要应用透明度和抖动,使散点图能呈现更多的信息。可以通过在 scatter
函数调用中添加 "alpha" 参数来表示透明度,"alpha" 的值可以介于 0(完全不透明,不可见) 到 1(完全透明)之间。
plt.scatter(data = df, x = 'disc_var1', y = 'disc_var2', alpha = 1/5)
image.png
重叠的点越多,图像颜色就越深。从图中可以看出,两个数字变量之间存在一定的负相关关系。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
部分相关联。
网友评论