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进行调整时导致很多混乱。