Может быть только один активный бэкэнд. Можно было бы изменить бэкэнд, но для этого потребовалось бы закрыть интерактивные фигуры.
Опция заключается в том, чтобы работать с интерактивным бэкэндом (например, %matplotlib widget
) и вызывать пользовательскую функцию, которая показывает изображение в формате png, как только это необходимо.
#Cell1
%matplotlib widget
#Cell2
import matplotlib.pyplot as plt
def fig2inline(fig):
from IPython.display import display, Image
from io import BytesIO
plt.close(fig)
buff = BytesIO()
fig.savefig(buff, format='png')
buff.seek(0)
display(Image(data=buff.getvalue()))
#Cell3: (show the interactive plot)
fig, ax = plt.subplots(figsize=(3, 1.7))
ax.plot([1,3,4]);
#Cell4: (show the inline plot)
fig2, ax2 = plt.subplots(figsize=(3, 1.7))
ax2.plot([3,1,1]);
fig2inline(fig2)