Skip to main content
 首页 » 编程设计

python之调整seaborn散点图中不同类别的不同透明度

2025年05月04日14telwanggs

我想要散点图中不同类别的不同 alpha 值(透明度)。

sns.scatterplot(x="BorrowerAPR", y="LoanOriginalAmount", data=df_new,  
                alpha=0.03, hue="LoanStatus") 

期望 1 类 alpha 为 0.2。

请您参考如下方法:

一种方法是分别绘制它们,但如果未指定,您会得到不同的色调。下面是来自内置 tips 数据集的示例,其中吸烟者和非吸烟者具有不同的 alpha 值:

import seaborn as sns 
import numpy as np 
 
tips = sns.load_dataset("tips") 
tips["alpha"] = np.where(tips.smoker == "Yes", 1.0, 0.5) 
 
ax = sns.scatterplot(x="total_bill", y="tip", 
                     data=tips[tips.alpha == 0.5], alpha=0.5) 
sns.scatterplot(x="total_bill", y="tip", data=tips[tips.alpha == 1.0],  
                alpha=1.0, ax=ax) 

这还会将较高的 alpha 点堆叠在较低的 alpha 点之上。

更普遍的是,对于多个 alpha 类别:

alphas = tips.alpha.sort_values().unique() 
ax = sns.scatterplot(x="total_bill", y="tip", 
                     data=tips[tips.alpha == alphas[0]], alpha=alphas[0]) 
for alpha in alphas[1:]: 
    sns.scatterplot(x="total_bill", y="tip", 
                    data=tips[tips.alpha == alpha], alpha=alpha, ax=ax)