ホームページ > バックエンド開発 > Python チュートリアル > 軸外の凡例の図ボックスを動的に拡張する: ソリューション

軸外の凡例の図ボックスを動的に拡張する: ソリューション

Linda Hamilton
リリース: 2024-10-18 12:04:03
オリジナル
244 人が閲覧しました

Dynamically Expanding Figure Box for Legends Outside Axes: A Solution

凡例の図ボックスの動的サイズ変更

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート