Site Overlay

如何在 Python 中绘制向量场(使用 Matplotlib)?

教程

准备工作

  1. Python 3
  2. Numpy & Matplotlib(使用 PIP 安装,代理可通过 HTTPS_PROXY 环境变量设置)

绘制简单二维向量场

下面的代码绘制了 $\bold{F}(x,y) = xi+2j$ 的向量场

import numpy as np
import matplotlib.pyplot as plt

x,y = np.meshgrid(np.linspace(-5,5,10),np.linspace(-5,5,10))

u = x
v = 2

plt.quiver(x,y,u,v)
plt.show()

效果

\bold{F}(x,y) = xi+2j

代码中的 $u,v$ 分别定义了分量。

绘制三维向量场

下面的代码绘制了 $\bold{F} = \sin x \bold{i} - \cos y \bold{j} + \sin z \bold{k}$ 的向量场:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.8))

u = np.sin(x)
v = -np.cos(y)
w = np.sin(z)

ax.quiver(x, y, z, u, v, w, length=0.2, color = 'blue')
plt.show()

效果

绘制四维向量场

你在想 peach(逃)

参考资料

  1. Plotting Vector Fields in Python

  2. Visualizing a vector field with Matplotlib

1 thought on “如何在 Python 中绘制向量场(使用 Matplotlib)?

发表评论

电子邮件地址不会被公开。 必填项已用*标注