Вот альтернативный пример:
%matplotlib inline
from matplotlib import animation, pyplot as plt
import numpy as np
plt.rc('animation', html='html5')
data = np.random.random(20)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(data) # draw background
anim = animation.ArtistAnimation(fig, [[ax.scatter(x, y)] for x, y in enumerate(data)])
anim
Результат (anim
) показан анимированным, но потенциальный побочный эффект является дополнительным отображением статического кадра. Этот побочный эффект исчезает, если вызов plt.figure
встречается в отдельной ячейке перед методом add_subplot
.
Это работает, потому что (например, ImportanceOfBeingErnest) создание нового рисунка вызывает побочный эффект отображения статическое изображение (изображающее, как фигура осталась при завершении текущей оценки ячейки в ноутбуке). Но если на фигуре еще ничего не было записано (даже не оси), вы предотвращаете отображение любого изображения (без необходимости использовать магию юпитера для его подавления).
То, что вы ищете, называется OLE, Object Linking and Embedding. Первоначально выпущенный в 1990 году, Microsoft Office стал последним основным продуктом Microsoft, который все еще поддерживал его. Время не было добрым к OLE, протокол был сложным и очень трудным для правильного. Также очень вредно для стабильности программы, вы не просто импортируете окна и пользовательские интерфейсы другой программы, но также и все свои ошибки.
Примечательно, что платформа .NET поставляется без какой-либо поддержки для нее. Office 2007 был последним, который поддерживал его, но с ним было несколько неприятных и неразрешимых проблем. DsoFramer был удален с серверов Microsoft перед выпуском бета-версии Office 2010.
Это исчезло навсегда и не вернется. Двигайтесь вперед, встраивая свой интерфейс в программу Office, а не наоборот. Очень хорошо поддерживается в VS с его шаблонами проектов Office. Существуют сторонние продукты, которые поддерживают внедрение текстового процессора или электронной таблицы в вашу собственную программу.