In [1]:
%load_ext autoreload
import numpy as np
%aimport FE
%aimport common_meshes
import matplotlib.pyplot as plt
from matplotlib import animation
import triangle
%matplotlib inline
print(plt.style.available)
plt.style.use('seaborn-paper')
In [ ]:
"""Example from matplotlib website"""
def update_line(num, data, line):
line.set_data(data[...,:num])
return line,
fig1 = plt.figure()
data = np.random.rand(2, 25)
l, = plt.plot([], [], 'r-')
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.xlabel('x')
plt.title('test')
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
interval=50, blit=True)
line_ani.save('lines.mp4')
fig2 = plt.figure()
x = np.arange(-9, 10)
y = np.arange(-9, 10).reshape(-1, 1)
base = np.hypot(x, y)
ims = []
for add in np.arange(15):
ims.append((plt.pcolor(x, y, base + add, norm=plt.Normalize(0, 30)),))
im_ani = animation.ArtistAnimation(fig2, ims, interval=50, repeat_delay=3000,
blit=True)
im_ani.save('im.mp4', metadata={'artist':'Guido'})
#plt.show()
In [2]:
def plotMesh(mesh):
x = mesh['vertices'][:,0]
y = mesh['vertices'][:,1]
plt.axes().set_aspect('equal')
plt.triplot(x, y, mesh['triangles'])
return
In [58]:
t = np.arange(0., 1., 0.01)
pt_list = np.array([[0.5-x/2.,0.5+x/2.] for x in t])
In [59]:
im = []
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.title('test 1')
fig = plt.figure()
for pt in pt_list:
print(pt)
sklt = {'vertices': np.array([[0.,0.], [1.,0.], pt]),
'triangles': np.array([[0,1,2]]),
'segments': np.array([[0], [1], [2]])}
plt.axes().set_aspect('equal')
sk_x = sklt['vertices'][:,0]
sk_y = sklt['vertices'][:,1]
mesh = triangle.triangulate(sklt, 'qa0.0005')
evecs = FE.findEigs(mesh, 5)[1]
eigvec_1 = evecs[:,1]
contours = np.linspace(np.min(eigvec_1)-0.01, np.max(eigvec_1)+0.01, 50)
#plt.triplot(sk_x, sk_y, color='k')
x = mesh['vertices'][:,0]
y = mesh['vertices'][:,1]
im.append((plt.tricontour(x, y, eigvec_1, contours,
colors=('k',), linestyles='solid').collections +
plt.triplot(sk_x, sk_y, color='k')))
im_ani = animation.ArtistAnimation(fig, im + im[::-1], interval=33, repeat_delay=10,
blit=True)
im_ani.save('hot_spots_1.mp4', metadata={'artist':'Neal Coleman'})
In [ ]: