首页 > 解决方案 > 如何在循环中制作 seaborn 分布子图?

问题描述

我有一个名为的 5D 数组data

for i in range(10):
     sns.distplot(data[i,0,0,0], hist=False)

但我想把它们放在子图中。我该怎么做?

试过这个:

plt.rc('figure', figsize=(4, 4))  
fig=plt.figure()
fig, ax = plt.subplots(ncols=4, nrows=3)

for i in range(10):
    ax[i].sns.distplot(data[i,0,0,0], hist=False)
plt.show()

这显然是行不通的。

标签: pythonnumpymatplotlibseaborn

解决方案


您可能希望使用axseaborndistplot函数的参数为​​其提供现有轴。循环可以通过在扁平的轴阵列上循环来简化。

fig, axes = plt.subplots(ncols=4, nrows=3)

for i, ax in zip(range(10), axes.flat):
    sns.distplot(data[i,0,0,0], hist=False, ax=ax)
plt.show()

推荐阅读