如何在matplotlib中更改当前轴示例(即gca())

bihw5rsg  于 2023-06-06  发布在  其他
关注(0)|答案(2)|浏览(129)

我使用了一个技巧来绘制一个高度与主坐标轴相匹配的颜色条。代码就像

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')

文本将绘制在cax上,而不是ax上-im所属的轴。
同时,gcf().axes显示两个轴。
我的问题是:如何使当前轴示例(由gca()返回)成为im所属的原始轴。

ioekq8ef

ioekq8ef1#

使用plt.sca(ax)设置当前轴,其中ax是要激活的Axes对象。

a2mppw5e

a2mppw5e2#

无需更改当前Axes示例,可以简单地将所需的Axes示例索引到图中的Axes列表中(如OP所述):

plt.gcf().axes[0].text(0, 0, 'whatever')

或者在特定的例子中,由于子图已经被分配给变量名,所以简单地按原样使用它。

ax.text(0, 0, 'whatever')

相关问题