Ahm*_*Dar 5 python numpy matplotlib python-3.x
我正在绘制有限导线的矢量磁势。所得矢量场应为圆形且指向上方(z 方向)。我得到的场是向上的,但它不是圆形的。它看起来像一个正方形。有人可以指出我犯的错误吗?
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
l = 10
x, y, z = np.meshgrid(np.linspace(-1, 1, 20),
np.linspace(-1, 1, 20),
np.linspace(-1, 1, 3))
u = 0
v = 0
w = np.log(2*l/((x**2 + y**2)**0.5))
ax.quiver(x, y, z, u, v, w, length=0.1, color = 'black')
plt.show()
Run Code Online (Sandbox Code Playgroud)
您可以使用面罩,正如此处指出的那样。
对于您的具体示例,您可以通过计算 xy 平面中的哪些点位于圆内来创建此蒙版:
x, y, z = np.meshgrid(np.linspace(-1, 1, 20),
np.linspace(-1, 1, 20),
np.linspace(-1, 1, 3))
radius = 1
mask = x**2 + y**2 <= radius
Run Code Online (Sandbox Code Playgroud)
现在敷面膜
x, y, z = x[mask], y[mask], z[mask]
u = 0
v = 0
w = np.log(2*l/((x**2 + y**2)**0.5))
ax.quiver(x, y, z, u, v, w, length=0.1, color = 'black')
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |