数据集每个变量的seaborn.boxplot

mig*_*lcv 2 python boxplot seaborn

我正在使用威斯康星数据集。要显示箱线图,其中 Y 轴是数据帧的变量(例如:radius_mean),X 轴是诊断,我执行以下操作:

sns.boxplot(x='label', y='radius', data=dsWisconsin)
Run Code Online (Sandbox Code Playgroud)

(dsWisconsin 是从 .csv 加载 pandas 的数据框)

我的问题是,如何显示每个变量的所有箱线图(在网格中),而不是为每个变量执行前面的代码?

例如,类似这样的内容,但带有威斯康星州每个变量的箱线图:

多重直方图

sns.boxplot(x='label', y='radius', data=dsWisconsin)
Run Code Online (Sandbox Code Playgroud)

phi*_*phi 5

您可以将数据转换为整齐的格式并使用FacetGrid

df = df.melt(id_vars=['id', 'diagnosis'])
df[:3]
#          id diagnosis     variable  value
# 0    842302         M  radius_mean  17.99
# 1    842517         M  radius_mean  20.57
# 2  84300903         M  radius_mean  19.69

cols = ['radius_mean', 'texture_mean', 'perimeter_mean', 'area_mean']
grid = sns.axisgrid.FacetGrid(df[df.variable.isin(cols)], col='variable', sharey=False)
grid.map(sns.boxplot, 'diagnosis','value')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述