美文网首页DATA ANALYSIS PROCESS
Matplotlib和Seaborn之重叠、透明度和抖动

Matplotlib和Seaborn之重叠、透明度和抖动

作者: IntoTheVoid | 来源:发表于2020-04-23 13:38 被阅读0次

    重叠、透明度和抖动

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

    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 部分相关联。

    image.png

    相关文章

      网友评论

        本文标题:Matplotlib和Seaborn之重叠、透明度和抖动

        本文链接:https://www.haomeiwen.com/subject/urdnfqtx.html