15
私はdraw a colorbar whose height matches the master axesにトリックを使用します。コードは次のとおりですmatplotlib:現在の軸のインスタンスを変更する(つまり、gca())
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)
このトリックはうまくいきます。ただし、新しい軸が追加されるため、図の現在のインスタンスは追加された軸であるcaxになります。結果として、
plt.text(0,0,'whatever')
のように操作を実行すると、テキストはaxの代わりにcax(つまり、imが属する軸)に描画されます。
一方、gcf()。axesは両方の軸を示します。
私の質問は、現在の軸のインスタンス(gca()によって返される)を元の軸にする方法です。
私はすぐに回避策を見つけました:plt.textの 'ax'引数を元のaxに指定するだけです:plt.colorbar(im、cax = cax、ax = ax) – Liang
'' ax.text (0、0、 '何でも') ''。 – fjarri
@ボグダン、はい、私はその作品を理解しています。単純なplt.text()を引き続き使用したい場合は、それがワークフローの中断です。私はちょうど私自身のコメントに投稿した迅速な回避策によって、コールplt.colorbar(im、cax = cax、ax = ax)は実際にgca()をaxに戻します。これは、高さが一致するカラーバーを描画する関数を折り返したい場合に便利です。 – Liang