In [1]:
%autosave 20
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

from astropy.io import fits
import numpy.ma as ma
import matplotlib.patches as mpatches
from matplotlib.path import Path
from matplotlib.text import OffsetFrom

from matplotlib import animation


Autosaving every 20 seconds

In [2]:
data = fits.open('image.fits')
image = np.squeeze(data[0].data)

fig, ax = plt.subplots()
image = ma.masked_less(image, 5*np.std(image[0:200,0:200]))
ax.imshow(image)

ell = mpatches.Ellipse(xy = [80,100], width = 40, 
                       height = 10, angle = -18 )
ax.add_patch(ell)
plt.text(200, 300, 'Core')

path_data = [
    (Path.MOVETO, [0,0]),
    (Path.CURVE4, [180, 130]),
    (Path.CURVE4, [150, 150]),
    (Path.LINETO, [10,10]),
    (Path.CLOSEPOLY, [0,0])
]

codes, dots = zip(*path_data)
path = Path(dots, codes)
patch = mpatches.PathPatch(path)
ax.add_patch(patch)

ax.annotate(
    'Core is here.', xy=(256,256), xycoords= 'data',
    xytext = (0.7, 0.7), textcoords = 'axes fraction',
    arrowprops = dict(arrowstyle= '->',facecolor = 'black')
                     )


Out[2]:
Text(0.7,0.7,'Core is here.')

In [3]:
fig = plt.figure(figsize=(6,4))
n = 500
x = np.linspace(0, 2*3.14, n)
y = np.sinc(x)
m = 5
def ani(i, x, y, m = 5):
    plt.clf()
    plt.plot(x[:i*m], y[:i*m], lw = 3)

anim = animation.FuncAnimation(fig, ani, fargs = (x, y), frames = n//m, 
                     interval = 10  )
anim.save('asd.mp4')



In [ ]: