In [4]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
fig, [ax1,ax2,ax3] = plt.subplots(1,3)
x = np.arange(0,2.2,0.2)
y = np.arange(0,2.2,0.2)
X, Y = np.meshgrid(x, y)
u = np.cos(X)*Y
v = np.sin(y)*Y
n = -2
R = np.sqrt(((v-n)/2)**2 + ((u-n)/2)**2)
ax1.quiver(X,Y,u,v,R, alpha=0.8)
ax1.xaxis.set_ticks([])
ax1.yaxis.set_ticks([])
ax1.axis([-0.2, 2.3, -0.2, 2.3])
ax1.set_aspect('equal')
x = np.arange(-2,2.2,0.2)
y = np.arange(-2,2.2,0.2)
X, Y = np.meshgrid(x, y)
z = X*np.exp(-X**2 -Y**2)
dx, dy = np.gradient(z)
n = -2
R = np.sqrt(((dx-n)/2)**2 + ((dy-n)/2)**2)
ax2.quiver(X,Y,dx,dy,R)
ax2.xaxis.set_ticks([])
ax2.yaxis.set_ticks([])
ax2.set_aspect('equal')
x = np.arange(0,2*np.pi+2*np.pi/20,2*np.pi/20)
y = np.arange(0,2*np.pi+2*np.pi/20,2*np.pi/20)
X,Y = np.meshgrid(x,y)
u = np.sin(X)*np.cos(Y)
v = -np.cos(X)*np.sin(Y)
n = -1
R = np.sqrt(((dx-n)/2)**2 + ((dy-n)/2)**2)
ax3.quiver(X,Y,u,v,R)
ax3.xaxis.set_ticks([])
ax3.yaxis.set_ticks([])
ax3.axis([0,2*np.pi,0,2*np.pi])
ax3.set_aspect('equal')
plt.tight_layout()
fig.savefig('3_quiver_plots.png', dpi=300, bbox_inches='tight')
plt.show()
In [ ]: