python - matplotlib:figsize for subplots - 在行之间添加空格

时间:2016-12-07 01:00:12

标签: python matplotlib

我使用以下代码制作图表:

   fig, axes = plt.subplots(len(pairs), 3, figsize=(12, 324))
    for i, pair in enumerate(pairs):
        d = pd.DataFrame(columns=[pairs[0], pairs[1]])
        e = df_norm[list(pair)]
        ax0 = axes[i,0]
        ax1 = axes[i,1]
        ax2 = axes[i,2]

        d[pair[0]] = np.random.normal(e[pair[0]],0.02)
        d[pair[1]] = np.random.normal(e[pair[1]],0.02)

    d.plot.scatter(*pair, ax=ax0, c=col0, linewidths=0, s=2, alpha = 0.7)
    d.plot.scatter(*pair, ax=ax1, c=col1, linewidths=0, s=2, alpha = 0.7)
    d.plot.scatter(*pair, ax=ax2, c=col2, linewidths=0, s=2, alpha = 0.7)

fig.tight_layout()

然而,我的输出图都搞砸了如下:

enter image description here

我尝试通过使324更大或更小来改变figsize=(12, 324),但都没有帮助。有没有办法可以在每一行之间放置一些空格,这样数字就不会搞砸了。谢谢!

2 个答案:

答案 0 :(得分:8)

您需要省略fig.tight_layout(),而是使用subplots_adjust

plt.subplots_adjust(top = 0.99, bottom=0.01, hspace=1.5, wspace=0.4)

有一些极端的价值观。 hspace是子图之间的垂直间隙(最可能以子图高度为单位)。

Figure具有相同的subplots_adjust方法,因此您可以决定选择哪一个。

答案 1 :(得分:1)

我认为,最简单的方法是坚持使用fig.tight_layout并使用h_pad(代表高度)和w_pad(代表宽度)。例如:

fig.tight_layout(h_pad=5, w_pad=5)