ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib の Figure から独立して AxesSubplot オブジェクトを作成できますか?

Matplotlib の Figure から独立して AxesSubplot オブジェクトを作成できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-13 00:46:02731ブラウズ

Can You Create AxesSubplot Objects Independently of Figures in Matplotlib?

AxesSubplot の作成と Figure の追加の分離

問題:
matplotlib プロットをカスタマイズするには、多くの場合 AxesSubplot の作成が必要です。オブジェクト。ただし、これらのオブジェクトは通常、作成時に Figure にバインドされます。これにより、複数の Figure 間で AxesSubplot を再利用する機能が制限されます。

質問:
AxesSubplot オブジェクトを Figure インスタンスから独立して作成し、それらを別の Figure に追加することは可能ですか?必要ですか?

答え:

はい、AxesSubplot の作成と matplotlib での Figure の追加を分離することができます。主なアプローチは 2 つあります。

Axes インスタンスを使用した関数の受け渡し:

  • Axes インスタンスを引数として受け取る関数を作成します。
  • この関数内にプロット コードを実装します。
  • 既存または新しく作成された Axes インスタンスを関数に渡します。
  • これにより、同じ Axes インスタンスを異なる関数呼び出しに渡すことで、複数の Figure で同じサブプロットを再利用できます。

Figure への Axes の追加:

  • Axes インスタンスを、 Figure.
  • Figure.axes.append() メソッドを使用して、Axes インスタンスを Figure に追加します。
  • append() メソッド内で目的のジオメトリを指定します。
  • これこのアプローチにより、Figure のサイズや数に関係なく、複数の Figure にわたって Axes インスタンスを再利用できます。 subplots.

コード例:

Axes インスタンスを使用した関数の受け渡し:

import numpy as np
import matplotlib.pyplot as plt

def plot_sin(ax):
    x = np.linspace(0, 6 * np.pi, 100)
    ax.plot(x, np.sin(x))
    ax.set_ylabel('Yabba dabba do!')

fig1, (ax1, ax2) = plt.subplots(nrows=2)
plot_sin(ax1)
plot_sin(ax2)

fig2 = plt.figure()
ax3 = fig2.add_subplot(111)
plot_sin(ax3)

plt.show()

軸の追加先数字:

import numpy as np
import matplotlib.pyplot as plt

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
fig2.axes.append(ax1)

plt.show()

以上がMatplotlib の Figure から独立して AxesSubplot オブジェクトを作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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