在下面的代码中,我想遍历“变量”中的所有类别变量,并在一个绘图窗口中显示所有“票价”的单独箱形图。我怎么做?谢谢。
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
更新2:以下YOLO的代码可以完成这项工作。谢谢!
答案 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")