Python 条件Facecolor/无Facecolor

Python 条件Facecolor/无Facecolor,python,plot,seaborn,Python,Plot,Seaborn,我正在尝试创建一个sns.scatterplot,取决于开放式或封闭式标记的条件 例如: df = pd.DataFrame({'A':[1,2,3,4,5],'B':[2,2,3,1,5],'C':['Y','Y','N','N','Y']}) fig = sns.scatterplot( data=df, x="A", y="B" ,s=100, edgecolor ='black', facecolors = 'none') 在这个例子中

我正在尝试创建一个
sns.scatter
plot,取决于开放式或封闭式标记的条件

例如:

df = pd.DataFrame({'A':[1,2,3,4,5],'B':[2,2,3,1,5],'C':['Y','Y','N','N','Y']}) 
fig = sns.scatterplot(
    data=df, x="A", y="B" ,s=100, edgecolor ='black', facecolors = 'none')

在这个例子中,我想创建一个散点图,其中
C
N
的所有标记都没有面色,而
C
Y
的所有标记都有面色。有什么方法可以做到这一点吗?

您可以通过调用scatterplot函数两次进行绘图,然后在同一轴上分别进行绘图:

import seaborn as sns
df = pd.DataFrame({'A':[1,2,3,4,5],'B':[2,2,3,1,5],'C':['Y','Y','N','N','Y']})
fig,ax = plt.subplots(1,1,figsize=(6,4))

fc = {"Y":"none","N":"blue"}
for i in fc.keys():
    sns.scatterplot(data=df[df['C']==i], x="A", y="B" ,s=100, edgecolor ='black',
                facecolors=fc[i],label = i,ax=ax)

也许只是
ax=sns.scatterplot(data=df,x=“A”,y=“B”,hue=“C”,s=100,edgecolor='black',palete={y':'none',N':'skyblue'})
?还要注意,
sns.scatterplot
是一个轴级函数,返回一个
ax
。调用返回值
fig
会在以后通过matplotlib进行调整时导致很多混乱。