我使用以下代码制作图表:
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()
然而,我的输出图都搞砸了如下:
我尝试通过使324更大或更小来改变figsize=(12, 324)
,但都没有帮助。有没有办法可以在每一行之间放置一些空格,这样数字就不会搞砸了。谢谢!
答案 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)