Saltar al contenido

La animación de Matplotlib en el cuaderno de Jupyter crea un gráfico vacío adicional

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

ingrese la descripción de la imagen aquí

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).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *