在Seaborn relplot和displot中,有一个名为col_wrap
的设置,它允许在与变量级别对应的行和列的网格中排列多个轴。
当relplot
可以选择plot
、scatter
和line
时,displot
可以选择绘制hist
、kde
、ecdf
。
目前,我必须依靠以下代码来绘制与变量
级别对应的行和列的网格import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="ticks")
tips = sns.load_dataset("tips")
plt.figure(figsize=(15,10))
variables=['Lunch','Dinner']
for i, c in enumerate(variables, 1):
filter_ch = tips ["time"].isin ( [c] )
dv = tips [filter_ch].reset_index ( drop=True )
plt.subplot(2,1,i)
g = sns.boxplot(x='sex', y="total_bill",hue='day',data=dv)
plt.show()
我在网上搜索了类似于relplot
和displot
的东西来绘制boxplot
,但无济于事。如果存在这样的方法,如果有人能告诉我合适的材料,我将不胜感激。
另外,由于在实际操作中,variables
将多于两个,因此是否有比使用上述建议的代码更紧凑和适当的方法?
显然,诀窍是使用catplot
sns.catplot(data=tips, x="sex", y="total_bill", hue="day", col="time", kind="box",col_wrap=1)