Matplotlibを使用して2組のデータを棒グラフにプロットしようとしているので、twinx()
メソッドで2つの軸を使用しています。ただし、2番目のy軸ラベルは切り取られます。成功せずにいくつかの異なる方法を試しました(tight_layout()
、major_pad
s 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")
私はちょうどそれを考え出した:トリックはsavefig
で_bbox_inches='tight'
_を使用することです。
例えば。 plt.savefig("test.png",bbox_inches='tight')
plt.tight_layout()
が自動的に解決しない同じ問題が発生しました。
代わりに、ylabel
/_set_ylabel
_のlabelpad引数を次のように使用しました。
ax.set_ylabel('label here', rotation=270, color='k', labelpad=15)
この質問をしたとき、これは実装されていなかったと思いますが、これはグーグルでの最高の結果であるため、現在のmatplotlibバージョンのユーザーに役立つことを願っています。