web-dev-qa-db-ja.com

2番目のy軸ラベルが途切れる

Matplotlibを使用して2組のデータを棒グラフにプロットしようとしているので、twinx()メソッドで2つの軸を使用しています。ただし、2番目のy軸ラベルは切り取られます。成功せずにいくつかの異なる方法を試しました(tight_layout()major_pads rcParamsなど...)。解決策は簡単だと思いますが、まだ出会っていません。

MWEは次のとおりです。

#!/usr/bin/env python
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 21})
ax = plt.gca()
plt.ylabel('Data1') #Left side
ax2 = ax.twinx()
for i in range(10):
  if(i%2==0):
    ax.bar(i,np.random.randint(10))
  else:
    ax2.bar(i,np.random.randint(1000),color='k')


plt.ylabel('Data2') #Right

side plt.savefig( "test.png")

Sample graph with Data2 cut off

26
zje

私はちょうどそれを考え出した:トリックはsavefigで_bbox_inches='tight'_を使用することです。

例えば。 plt.savefig("test.png",bbox_inches='tight')

fixed now

75
zje

plt.tight_layout()が自動的に解決しない同じ問題が発生しました。
代わりに、ylabel/_set_ylabel_のlabelpad引数を次のように使用しました。

ax.set_ylabel('label here', rotation=270, color='k', labelpad=15)

この質問をしたとき、これは実装されていなかったと思いますが、これはグーグルでの最高の結果であるため、現在のmatplotlibバージョンのユーザーに役立つことを願っています。

0
Elliot