web-dev-qa-db-ja.com

matplotlibのタイトルとプロット間の距離を増やしますか?

Matplotlibに簡単なプロットがあり、タイトルとプロットの間の距離を増やしたい(サーバーで使用するバージョンでは動作しないため、suptitleを使用せずに)。どうやってするか ?

30
Vincent

これを直接設定する明確な方法はないと思われます(ただし、追加する機能のリクエストに値するかもしれません)が、タイトルはtextアーティストであるため、手を差し伸べて変更できます。

#ax = plt.gca()
ttl = ax.title
ttl.set_position([.5, 1.05])
#plt.draw()

トリックを行う必要があります。 1.05を好みに合わせて調整します。

34
tacaswell

matplotlib 2.2+、キーワード引数padを使用できます。

ax.set_title('Title', pad=20)

軸タイトルの位置に満足するまで、padを調整します。 rcParamsを使用するよりもこの方法の利点は、この1つの軸タイトルのみを変更することです。

25
Thucydides411

rcParamsを使用:

from matplotlib import rcParams
rcParams['axes.titlepad'] = 20 

どこ 20は、プロットとタイトルの間のパディングです。

から https://matplotlib.org/users/customizing.html

17
bmorgan

yパラメーターをplt.suptitleメソッドに渡すだけです:

plt.suptitle('Amazing Stats', size=16, y=1.12);      
7
CanCeylan

別の可能性は、Figureウィンドウ全体に対してプロットの相対的なサイズを小さくすることです。そのようにして、タイトルとプロット間の距離が長くなります。

プロットを表示する前、つまりplt.show()の前に、次のコマンドを記述します:

#The standard value of 'top' is 0.9, tune a lower value, e.g., 0.8
plt.subplots_adjust(top=0.8) 

このメソッドには、@ CanCeylanメソッドに比べて、タイトルがFigureウィンドウから出ないという利点があります。タイトルが十分に大きい場合は、yのパラメーターsuptitleを介してタイトルを上に移動すると、タイトルがFigureの外側に移動する可能性があるためです。 (それは私に起こったように;))

2
loved.by.Jesus