Python+matplotlib, animacja z użyciem imshow

Witam serdecznie,
Używam dość prostej funkcji imshow żeby wyplotować na ekranie rysunek składający się z pixeli ułożonych z tablicy:

import math
import numpy as np
import matplotlib.pyplot as plt

r=500
H = np.zeros((640,640),dtype=int)
for rad in range(90):
	H[round(r*math.cos(rad*math.pi/180.)),round(r*math.sin(rad*math.pi/180.))] = 1

plt.imshow(H)
plt.show()

Chciałbym jednak zrobić animację dla r = 500 + 100math.cos(radmath.pi/180.). Dla tego przykładu chodzi o pulsację ćwiartki okręgu od promienia 400 do promienia 600 pixeli.

Moje początki wyglądają tak:

import math
import numpy as np 
import matplotlib.pyplot as plt
import matplotlib.animation as animation

ims=[]
H = np.zeros((640,640),dtype=int)

for r in range (300,500):
	for rad in range(90):
		H[round(r * math.cos(rad*math.pi/180)),round(r * math.sin(rad*math.pi/180))] = 1
	ims.append([H])

ani = animation.ArtistAnimation(plt.figure(), ims, interval=50, blit=False,repeat_delay=1000)
plt.show()

Program ‘dziala’ ale nic nie wyświetla.

Mógłbym prosić o jakąś wskazówkę?

Pozdrawiam serdeczne,
Oskar

Ok, po nocy udało się ogarnąć:

import math
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()

def tabel(r):
	H = np.zeros((60,60),dtype=int)
	for rad in range(90):
		H[round(r*math.cos(rad*math.pi/180.)),round(r*math.sin(rad*math.pi/180.))] = 1
	return H
t=0
r = 30
H = np.zeros((60,60),dtype=int)
for rad in range(90):
	H[round(r*math.cos(rad*math.pi/180.)),round(r*math.sin(rad*math.pi/180.))] = 1
im = plt.imshow(H, animated=False)

def updatefig(*args):
	global r, t
	rr = r
	t += 0.1
	rr = r + math.sin(t)*8.
	im.set_array(tabel(rr))
	return im,

ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=False)
plt.show()

Pozdrawiam.