Python で展開する凡例に合わせて図ボックスのサイズを動的に変更する方法

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

How to Dynamically Resize Figure Box to Fit Expanding Legend in Python?

凡例の展開に合わせて Figure ボックスのサイズを変更する

Matplotlib で凡例を軸の外側に移動すると、凡例の位置が変更されるという問題が発生します。フィギュアボックスにより切れる場合がございます。この問題は、凡例がプロット領域の境界を越えて拡大されると発生します。従来、より大きな凡例に合わせて軸を調整することが推奨される解決策でしたが、データのサイズが小さくなり、解釈がより困難になる可能性があります。

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

この問題に対処するために提案される解決策は、データ サイズを変更せずに、展開される凡例に合わせて Figure ボックスのサイズを動的に変更することです。この動作は R と LaTeX では観察されますが、Python ではすぐにはわかりませんでした。

Figure Box のサイズを動的に変更するコード

この動的なサイズ変更を実行するための推奨コードは次のとおりです。

<code class="python">fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
ログイン後にコピー

このコードでは、lgd は凡例オブジェクトを表します。 bbox_extra_artists=(lgd,) を指定すると、savefig が凡例に合わせて Figure ボックスを動的に調整できるようになります。

複雑な凡例を使用した例

次の例は、複雑な凡例:

<code class="python">import matplotlib.pyplot as plt
import numpy as np

# Create figure and subplot
fig = plt.figure(1)
ax = fig.add_subplot(111)

# Plot data and create legend
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')
lgd = ax.legend(loc='upper center', bbox_to_anchor=(0.5,-0.1))

# Add arbitrary text for testing
text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes)

# Set title and grid
ax.set_title("Trigonometry")
ax.grid('on')

# Save figure with dynamic resizing
fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')</code>
ログイン後にコピー

このコードは、軸領域を超えて広がる複雑な凡例を含むプロットを生成します。 bbox_extra_artists パラメータは、凡例に合わせて Figure ボックスを調整し、凡例全体が表示されます。

注:

2019 年以降、動的なサイズ変更のコードは次のようになりました。簡略化された。現在は次のコマンドで十分です:

<code class="python">plt.savefig('x.png', bbox_inches='tight')</code>
ログイン後にコピー

以上がPython で展開する凡例に合わせて図ボックスのサイズを動的に変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!