Kann ich so etwas wie imsave () mit Text-Overlay machen?

Ich benutzeimsave() sequentiell machen viele PNGs, die ich als AVI AVI im Glossar erklärt kombinieren möchte und ich möchte bewegte Textanmerkungen hinzufügen. Ich benutze ImageJ, um AVIs oder GIFs zu erstellen.

Ich will nicht die Achsen, Zahlen, Ränder oder irgendetwas, nur das Farbbild (alsimsave() enthält beispielsweise Text (und möglicherweise Pfeile). Diese ändern sich Frame für Frame. Verzeihen Sie die Verwendung von Jet.

Ich könnte benutzensavefig() mit Häkchen aus und dann als Nachbearbeitung beschneiden, aber gibt es eine bequemere, direktere oder "matplotlibithic" Möglichkeit, dies zu tun, die auf meiner Festplatte nicht so schwer wäre? (Die letzte Sache wird ziemlich groß sein).

Ein Code-Snippet, hinzugefügt auf Anfrage:

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage