使用Seaborn在一个绘图窗口中对所有类别变量进行多个箱形图绘制?

时间:2020-01-04 19:06:20

标签: python seaborn boxplot

在下面的代码中,我想遍历“变量”中的所有类别变量,并在一个绘图窗口中显示所有“票价”的单独箱形图。我怎么做?谢谢。

import seaborn as sns
sns.set(style="ticks")
titanic = sns.load_dataset("titanic")
variables = list(titanic.select_dtypes(include="object").columns)  # list of categorical variables
# single boxplot of fare vs passenger sex
g = sns.catplot(x="sex", y="fare", kind="box", data=titanic.query("fare>0"))
g.set(yscale="log")

更新:以下循环代码似乎可以正常工作,但如果可能的话,我希望获得一些有关清理绘图的帮助(如下所示),即删除空的子绘图窗口和内轴刻度/标签。再次感谢。

fig, axs = plt.subplots(nrows=2, ncols=3)
i = j = 0
for variable in variables:
    g = sns.boxplot(x=variable, y="fare", data=titanic.query("fare>0"), ax=axs[i][j])
    g.set(yscale="log")
    j += 1
    if j>2:
        i += 1; j = 0

enter image description here

更新2:以下YOLO的代码可以完成这项工作。谢谢!

1 个答案:

答案 0 :(得分:1)

这是一种方法:

import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(15,10))

for i, c in enumerate(variables, 1):
    plt.subplot(2,3,i) 
    g = sns.boxplot(x=c, y="fare",data=titanic.query("fare>0"))
    g.set(yscale="log")