matplotlib のドキュメントから:
Figure にキー (args, kwargs) を持つサブプロットが既にある場合は、単にそのサブプロットを現在のものにして、それを返します。
次に例を示します。
import matplotlib.pyplot as plt
fig = plt.figure()
for vplot in [1,2,3]:
ax = fig.add_subplot(3,1,vplot)
ax.plot(range(10),range(10))
ax_again = fig.add_subplot(3,1,2)
ax_again.annotate("The middle one",xy=(7,5),xytext=(7,5))
plt.show()
中央のプロットは、注釈を付けることができるように再度呼び出されます。
元の呼び出しで背景を設定した場合、サブプロットを 2 回目に取得したときに再度設定する必要がありますか?
はい。元の呼び出しの引数とキーワードは、一意の識別子を作成するために使用されます。したがって、Figure がこの一意の識別子を再度生成するには、同じ引数 (グリッド定義、位置) とキーワードを再度渡す必要があります。例えば:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(2,1,1,axisbg='red')
ax.plot(range(10),range(10))
ax = fig.add_subplot(2,1,2)
ax.plot(range(10),range(10))
ax_again = fig.add_subplot(2,1,1,axisbg='red')
ax_again.annotate("The top one",xy=(7,5),xytext=(7,5))
plt.show()
を使用するとどうなります ax_again.change_geometry()
か?
たとえば、312 から 422 に change_geometry を使用すると、add_subplot の使用方法が変わると思うかもしれませんが、そうではありません。change_geometry を呼び出すと、バグまたは未定義の動作が発生するようです。引数とキーワードを使用して最初に生成された一意のキーは、最初の add_subplot 呼び出しまで更新されません。したがって、add_subplot 呼び出しで軸を取得したい場合は、元の引数とキーワードを使用して add_subplot を呼び出す必要があります。詳細については、この問題レポートに従ってください:
https://github.com/matplotlib/matplotlib/issues/429
今のところ私の推測では、add_subplot 呼び出しで生成した後にサブプロットのプロパティを変更すると、一意のプロパティは調整されません。したがって、元の引数とキーワードを使用するだけで、うまくいくことを願っています。