使seaborn的regplot置信区间更加透明(alpha参数)

问题描述 投票:0回答:1

我在选择 sns.regplot 的 alpha 时遇到问题,因为它不是在图中自定义的选项之一(

scatter_kws
line_kws
)所以我正在尝试通过创建两个重叠的图来解决。

这不会使置信区间阴影变浅,因为

scatter_kws
指的是散点并且
line_kws
改变了整个最佳拟合线和阴影置信区间的 alpha。

columns = [ 
"col1",
"col2"
]

fig, ax = plt.subplots()

for col in columns:
    sns.regplot(x=df[col], y=df.y_val, scatter=False, ci = 95,
                scatter_kws={"alpha": 0.3}, label=col)
    
for col in columns:
    sns.regplot(x=df[col], y=df.y_val, scatter=False, ci = 0,
                line_kws={"alpha": 1}, label=col)
    

plt.legend(loc='best', markerscale=5)
plt.ylim(0, 1)
plt.xlim(0, 1)
plt.show()

结果是一个与默认透明度相同并显示双倍不同颜色的图形。线条与阴影不同。

python matplotlib regression seaborn linear-regression
1个回答
0
投票

要设置/更改 ci 中 regplot 阴影的透明度,您可以使用

plt.setp(ax.collections[x], alpha=0.x)
。由于没有数据,我使用了 seaborn 提示表。 collections[0] 用于列中的第一项,collections['1] 用于最后一项...为了展示这一点,我使用了 alpha=0.1 和 0.9。希望这就是您要找的...

df=sns.load_dataset('tips')
columns = [ 
"total_bill",
"size"
]

fig, ax = plt.subplots()

for col in columns:
    # Removed kws here
    sns.regplot(data=df, x=col, y='tip', scatter=False, ci = 95, label=col)
    
## Using collections
plt.setp(ax.collections[0], alpha=0.1) ## For total_bill
plt.setp(ax.collections[1], alpha=0.9) ## For size

plt.legend(loc='best', markerscale=5)
#plt.ylim(0, 1) ## Not valid for my data
#plt.xlim(0, 1) ## Not valid for my data
plt.show()

© www.soinside.com 2019 - 2024. All rights reserved.