高さがマスター軸に一致するカラーバーを描く にトリックを使用します。コードは
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
ax = plt.subplot(111)
im = ax.imshow(np.arange(100).reshape((10,10)))
# create an axes on the right side of ax. The width of cax will be 5%
# of ax and the padding between cax and ax will be fixed at 0.05 inch.
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(im, cax=cax)
このトリックはうまく機能します。ただし、新しい軸が追加されるため、Figureの現在のインスタンスはcax-追加された軸になります。その結果、次のような操作を実行すると
plt.text(0,0,'whatever')
テキストはaxではなくcaxに描画されます-imが属する軸。
一方、gcf()。axesは両方の軸を示します。
私の質問は、現在の軸インスタンス(gca()によって返される)をimが属する元の軸にする方法です。
plt.sca(ax)
を使用して、現在の軸を設定します。ax
は、アクティブにするAxes
オブジェクトです。