¿Puedo hacer algo como imsave () con superposición de texto?

estoy usandoimsave() secuencialmente para hacer muchos PNG que combinaré como AVI y me gustaría agregar anotaciones de texto en movimiento. yo sueloImageJ para hacer AVI o GIF.

No quiero los ejes, números, bordes ni nada, solo la imagen en color (comoimsave() proporciona por ejemplo) con texto (y tal vez flechas) dentro. Estos cambiarán cuadro por cuadro. Perdón por el uso del jet.

Podría usarsavefig() con las garrapatas desactivadas y luego hacer el recorte como procesamiento posterior, pero ¿hay una manera más conveniente, directa o "matplotlibithic" de hacer esto que no sería tan difícil en mi disco duro? (Lo último será bastante grande).

Un fragmento de código, agregado por solicitud:

import numpy as np
import matplotlib.pyplot as plt

nx, ny = 101, 101

phi   = np.zeros((ny, nx), dtype = 'float')
do_me = np.ones_like(phi, dtype='bool')

x0, y0, r0 = 40, 65, 12

x = np.arange(nx, dtype = 'float')[None,:]
y = np.arange(ny, dtype = 'float')[:,None]
rsq = (x-x0)**2 + (y-y0)**2

circle = rsq <= r0**2

phi[circle] = 1.0
do_me[circle] = False

do_me[0,:], do_me[-1,:], do_me[:,0], do_me[:,-1] = False, False, False, False

n, nper = 100, 100
phi_hold = np.zeros((n+1, ny, nx))
phi_hold[0] = phi

for i in range(n):

    for j in range(nper):
        phi2 = 0.25*(np.roll(phi,  1, axis=0) +
                     np.roll(phi, -1, axis=0) +
                     np.roll(phi,  1, axis=1) +
                     np.roll(phi, -1, axis=1) )

        phi[do_me] = phi2[do_me]

    phi_hold[i+1] = phi

change = phi_hold[1:] - phi_hold[:-1]

places = [(32, 20), (54,25), (11,32), (3, 12)]

plt.figure()
plt.imshow(change[50])
for (x, y) in places:
    plt.text(x, y, "WOW", fontsize=16)
plt.text(5, 95, "Don't use Jet!", color="white", fontsize=20)
plt.show()

Respuestas a la pregunta(1)

Su respuesta a la pregunta