1. ホーム
  2. パイソン

[解決済み】Matplotlib の tight_layout() が図の suptitle を考慮しない。

2022-04-01 23:34:46

質問

matplotlibの図にサブタイトルを追加すると、サブプロットのタイトルに重なってしまいます。どなたか、この問題を簡単に解決する方法をご存知でしょうか?私は tight_layout() 関数がありますが、事態を悪化させるだけです。

import numpy as np
import matplotlib.pyplot as plt

f = np.random.random(100)
g = np.random.random(100)
fig = plt.figure()
fig.suptitle('Long Suptitle', fontsize=24)
plt.subplot(121)
plt.plot(f)
plt.title('Very Long Title 1', fontsize=20)
plt.subplot(122)
plt.plot(g)
plt.title('Very Long Title 2', fontsize=20)
plt.tight_layout()
plt.show()

解決方法は?

サブプロットのジオメトリを調整するのは、まさに tight_layout の呼び出しは、次のようになります。

fig.tight_layout(rect=[0, 0.03, 1, 0.95])

ドキュメントに記載されているように、( https://matplotlib.org/users/tight_layout_guide.html ):

tight_layout() は、ティックラベル、軸ラベル、およびタイトルだけを考慮します。したがって、他のアーティストが切り取られたり、重なったりする可能性があります。