Solución:
Esto no tiene nada que ver con una animación.
Las líneas
%matplotlib inline
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
creará una salida con una figura vacía.
Puede evitar la salida de una celda en jupyter notebook usando %%capture
.
Celda1:
%%capture
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.animation
plt.rcParams["animation.html"] = "jshtml"
import numpy as np
t = np.linspace(0,2*np.pi)
x = np.sin
fig, ax = plt.subplots()
h = ax.axis([0,2*np.pi,-1,1])
l, = ax.plot([],[])
def animate(i):
l.set_data(t[:i], x[:i])
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len
Celda2:
ani
Puedes añadir plt.close()
antes de la última línea.
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import animation
from IPython.display import HTML
plt.rcParams['figure.figsize'] = (5,3)
plt.rcParams['figure.dpi'] = 100
plt.rcParams['savefig.dpi'] = 100
plt.rcParams["animation.html"] = "jshtml" # for matplotlib 2.1 and above, uses JavaScript
#plt.rcParams["animation.html"] = "html5" # for matplotlib 2.0 and below, converts to x264 using ffmpeg video codec
t = np.linspace(0,2*np.pi)
x = np.sin
fig, ax = plt.subplots()
ax.axis([0,2*np.pi,-1,1])
l, = ax.plot([],[])
def animate(i):
l.set_data(t[:i], x[:i])
ani = animation.FuncAnimation(fig, animate, frames=len
plt.close()
ani
Aquí hay un ejemplo alternativo:
%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
El resultado (anim
) se muestra animada, pero el efecto secundario potencial es una visualización adicional del marco estático. Este efecto secundario desaparece si el plt.figure
La llamada ocurre en una celda separada antes de add_subplot
método.
Esto funciona porque (como dijo ImportanceOfBeingErnest) la creación de una nueva figura provoca el efecto secundario de mostrar una imagen estática (que muestra cómo se dejó la figura al final de la evaluación de celda actual en el cuaderno). Pero si todavía no se ha llenado nada en la figura (ni siquiera los ejes), evita que se muestre ninguna imagen (sin necesidad de la magia de jupyter para suprimirla).