1. ホーム
  2. python

[解決済み] Python Matplotlib の図のタイトルが軸のラベルに重なる(twiny を使用した場合

2022-04-24 01:22:26

質問

twinyを使って、以下のように2つの別々の量を同じグラフにプロットしようとしています。

fig = figure()
ax = fig.add_subplot(111)
ax.plot(T, r, 'b-', T, R, 'r-', T, r_geo, 'g-')
ax.set_yscale('log')
ax.annotate('Approx. sea level', xy=(Planet.T_day*1.3,(Planet.R)/1000), xytext=(Planet.T_day*1.3, Planet.R/1000))
ax.annotate('Geostat. orbit', xy=(Planet.T_day*1.3, r_geo[0]), xytext=(Planet.T_day*1.3, r_geo[0]))
ax.set_xlabel('Rotational period (hrs)')
ax.set_ylabel('Orbital radius (km), logarithmic')
ax.set_title('Orbital charts for ' + Planet.N, horizontalalignment='center', verticalalignment='top')


ax2 = ax.twiny()
ax2.plot(v,r,'k-')
ax2.set_xlabel('Linear speed (ms-1)')

show()

で、データは問題なく表示されているのですが、図のタイトルが副軸のx軸の軸ラベルと重なってしまい、ほとんど読めないという問題があります(ここに画像例を掲載したかったのですが、まだ十分な高評価が得られていません)。

タイトルを直接数十ピクセル上にずらすだけで、チャートがきれいに見える素直な方法があれば教えて欲しいです。

どのように解決するのですか?

matplotlibの後のバージョンで新しい機能なのかどうかはわかりませんが、少なくとも1.3.1では、単純にこれです。

plt.title(figure_title, y=1.08)

また、これは plt.suptitle() には適用されませんが plt.xlabel() など。