我在选择 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()
结果是一个与默认透明度相同并显示双倍不同颜色的图形。线条与阴影不同。
要设置/更改 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()