如何在2x2网格上绘制多个Seaborn Catplot?

时间:2018-12-07 14:06:36

标签: matplotlib seaborn

我尝试使用FacetGrid绘制2x2网格,每个子图都是相同数据的猫图,但只是具有不同的“抖动”值。它没有用。

这是我现在使用的代码:

sns.catplot(x="Sex", y="SidestepDist", jitter=False, data=daten_csv)
sns.catplot(x="Sex", y="SidestepDist", jitter=0.2, data=daten_csv)
sns.catplot(x="Sex", y="SidestepDist", jitter=0.5, data=daten_csv)
sns.catplot(x="Sex", y="SidestepDist", jitter=1, data=daten_csv)

但是,我当然可以像下面这样得到下面的图: enter image description here

如何将所有4个子图放置为2x2矩阵(网格)来绘制主图?

1 个答案:

答案 0 :(得分:1)

所以..我在@ImportanceOfBeingErnest的大力帮助下弄清楚了

这是执行此操作的方法:

绘制针对性别的回避距离

fig, ax = plt.subplots(2,2, figsize=(12,10))
jitter = [[False, 1], [0.5, 0.2]]

for j in range(len(ax)):
    for i in range(len(ax[j])):
        ax[j][i].tick_params(labelsize=15)
        ax[j][i].set_xlabel('label', fontsize=17, position=(.5,20))
        ax[j][i].set_ylabel('label', fontsize=17)
        # x as Hindernisabstand hinzufügen 
        ax[j][i] = sns.stripplot(x="Sex", y="SidestepDist", jitter=jitter[j][i], data=daten_csv, ax=ax[j][i])
fig.suptitle('Categorical Features Overview', position=(.5,1.1), fontsize=20)
fig.tight_layout()

fig.show()

这是它的样子:

plot overview