У меня есть несколько объектов, которые визуализируют разные вещи.Всем им передается ссылка на один экземпляр Figure и создаются их собственные объекты осей (одновременно активен только один из них)
Код для демонстрации будет:
import numpy as np
import matplotlib.pyplot as plt
# the visualization objects are jupyter widgets in production code
%matplotlib widget
plt.ioff()
def update_fig(f):
f.canvas.draw()
f.canvas.flush_events()
f = plt.figure()
# first visualizer is created and plots into the figure
ax1 = f.add_subplot(1,1,1, label="visualizer_1")
img1 = np.random.randint(0, 256, (20, 20, 3))
vis1 = ax1.imshow(img1)
update_fig(f)
# second visualizer is created and plots into the figure
ax2 = f.add_subplot(1,1,1, label="visualizer_2")
vis2 = ax2.plot(np.linspace(0, 5), 2 * np.linspace(0, 5))
update_fig(f)
Как тогда я могу переключить, какие оси показывать на графике?Уже пытался plt.sca(ax1)
вернуться к первой визуализации, но это не сработало.
Конечно, я мог бы использовать разные цифры для каждого объекта визуализации, но, поскольку у меня их много, я бы предпочел этого избежать.