凡例の図ボックスの動的サイズ変更
Matplotlib のプロット軸の外側に凡例を配置すると、図ボックスによって凡例が切り取られることがあります。 。この問題は、凡例の長さが軸のサイズを超える場合に発生します。
軸の縮小の回避
他のソリューションとは異なり、データの可視性を維持するには、軸の縮小を回避することが推奨されます。軸を縮小すると、特に広範囲の凡例を含む複雑なプロットを扱う場合に、データの可読性が低下します。
動的な図ボックスの拡張
凡例に合わせて図ボックスを動的に拡張するには、 savefig の呼び出しを次のように調整します:
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
ここで、bbox_extra_artists は境界ボックスのサイズを決定するときに追加のアーティスト (この場合は凡例) を考慮します。
サンプル コード
次のコードは、軸の外側に凡例を含むプロットを生成し、bbox_extra_artists を使用して Figure ボックスのサイズを自動的に変更します。
import matplotlib.pyplot as plt import numpy as np x = np.arange(-2*np.pi, 2*np.pi, 0.1) fig = plt.figure(1) ax = fig.add_subplot(111) ax.plot(x, np.sin(x), label='Sine') ax.plot(x, np.cos(x), label='Cosine') ax.plot(x, np.arctan(x), label='Inverse tan') handles, labels = ax.get_legend_handles_labels() lgd = ax.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5,-0.1)) text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes) ax.set_title("Trigonometry") ax.grid('on') fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')
このコードの結果、凡例が軸の外側にあるプロットが生成されます。そして、Figure ボックスは凡例のサイズに合わせて動的に調整されます。
結論
savefig の bbox_extra_artists パラメータを利用することで、Figure ボックスを動的に拡張して、軸の外側の凡例は切り取られません。このアプローチは、軸の縮小という欠点のない、便利で効果的なソリューションを提供します。
以上が軸外の凡例の図ボックスを動的に拡張する: ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。