熊猫申请后在Seaborn树立传说

问题描述

我必须基于二进制变量从数据帧绘制两个散布图:

df_train \
.groupby("Binary")["Continuous"] \
.apply(sb.distplot,hist=False)

plt.show()

如果我在apply中传递参数 label = ,则相同的标签将应用于两个图。我该如何告诉他根据二进制特征的值显示标签

解决方法

代替使用apply,您可以遍历创建的组。 (代替没有直方图的distplot,可以直接调用kdeplot,这使得提供其他参数更加容易。)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

df_train = pd.DataFrame({"Binary": np.repeat(['yes','no'],1000),"Continuous": np.random.uniform(-1,1,2000).cumsum()})
groups = df_train.groupby("Binary")["Continuous"]

for label,group in groups:
    sns.kdeplot(group,label=f"Binary: {label}",shade=True)
plt.show()

example plot