Ну, вам нужно использовать бэкэнд, который поддерживает взаимодействие!
backend_agg
не является интерактивным. backend_tkagg
(или один из других подобных бэкэндов).
Как только вы используете интерактивный бэкэнд, вам нужно сделать что-то более похожее на это:
import matplotlib.backends.backend_tkagg as backend
from matplotlib.figure import Figure
manager = backend.new_figure_manager(0)
fig = manager.canvas.figure
ax = fig.add_subplot(1,1,1)
ax.plot([1,2,3])
fig.show()
backend.show()
Честно говоря, это не способ использовать интерфейс oo. Если вам понадобятся интерактивные сюжеты, сделайте что-то вроде этого:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot([1,2,3])
plt.show()
Вы по-прежнему используете интерфейс oo, вы просто позволяете pyplot
создать менеджер фигур и ввести для вас графический интерфейс gui.