ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib で軸の外側の凡例を収容するために図ボックスを拡張する方法は?

Matplotlib で軸の外側の凡例を収容するために図ボックスを拡張する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-18 12:18:30524ブラウズ

How to Expand Figure Box to Accommodate Legends Outside the Axis in Matplotlib?

軸外の凡例の図ボックスの展開

凡例を軸の外に移動すると、多くの場合、図ボックスが小さすぎて、伝説のサイズ。軸の縮小は、プロット サイズが小さくなり、複雑なデータの解釈が困難になるため、理想的ではありません。

Figure Box の動的サイズ変更

この問題を解決するには、次のことが可能です。凡例に合わせて Figure ボックスのサイズを動的に調整します。これは、次の引数を使用して savefig() 呼び出しを変更することで実現できます:

  1. bbox_extra_artists で、凡例など、軸を超えて広がる追加アーティストを含めます。
  2. bbox_inches='tight ' 内のすべての要素が収まるように Figure のサイズを調整します。

コード例

次のコードを考えてみましょう:

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

# Construct a plot with a legend
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')
lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))
ax.grid('on')

# Save the figure with the adjusted bounding box
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>

出力

このコードは、軸の外側に凡例を含むプロットを作成し、凡例を収容するために Figure ボックスが拡張されます。 bbox_extra_artists 引数内にテキスト ラベルなどの追加のアーティストを含めることもできます。

簡略化されたコマンド

Matplotlib の最近のバージョンでは、コマンドが簡略化されました。 。厳密な境界ボックスを含む Figure を保存するには、次の引数のみが必要です:

<code class="python">plt.savefig('x.png', bbox_inches='tight')</code>

以上がMatplotlib で軸の外側の凡例を収容するために図ボックスを拡張する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。