Matplotlib 如何在2x2网格上绘制多个seaborn CATPlot?

Matplotlib 如何在2x2网格上绘制多个seaborn CATPlot?,matplotlib,seaborn,Matplotlib,Seaborn,我尝试使用FacetGrid绘制一个2x2网格,每个子图都是相同数据的catplot,但只是具有不同的“抖动”值。它不起作用 以下是我现在使用的代码: 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",

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

以下是我现在使用的代码:

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)
当然,我得到的图如下:


我怎么能有一个主图,所有4个子图都作为2x2矩阵(网格)放置。。在@ImportanceOfBeingErnest的大力帮助下,我找到了答案

以下是实现这一目标的方法:

绘制侧步距离与性的对比图 下面是它的样子:


使用
FaceGrid
时,什么不起作用还不太清楚。在任何情况下,考虑通过<代码> PLT。子图(2,2)< /代码>生成一个正常的MatpTLIB网格,并将Seabn <代码>条带< /代码>绘制到每个子图中。谢谢您的回答。我不想把问题问得太长。我在尝试使用网格时得到了白色的轴。但是你可以用FacetGrid忽略问题的一部分。怎么能改变我发布的代码,让它有一个2x2的网格图,上面有子图?是的,没错!Thx对于后续问题,我们能否将每个问题放在一边,因为它们是两个不同的问题,在两个不同的背景下提出,涉及两个不同的主题?除此之外,如果你阅读问题的标题,它清楚地表明,我在问如何用“海洋出生的猫图”做到这一点。如果你能给出一个有用的答案,谢谢你,如果不能,评论每一个问题不会让我们走得更远。。如果我知道答案,我不认为我会花时间写问题、截图、解释并张贴在这里。我可以提供一个答案,解释为什么不可能使用
catplot
s。据推测,这不会让你更接近你的目标。这就是为什么我建议使用子地块网格并将seaborn
stripplot
s绘制到它。这应该是非常直截了当的,但如果不是这样的话,你需要看看你被困在哪里。
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()