Ответ 1
Используйте plt.sca(ax)
для установки текущих осей, где ax
- объект Axes
вы хотите активировать.
Я использую трюк, чтобы нарисовать цветную панель, высота которой соответствует ведущим осям. Код похож на
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(). оси показывают обе оси.
Мой вопрос: как сделать экземпляр текущей оси (возвращаемый gca()) исходной осью, к которой принадлежит им.
Используйте plt.sca(ax)
для установки текущих осей, где ax
- объект Axes
вы хотите активировать.