我想用matplotlib繪製一個矢量字段,但它不能正確繪製,我無法弄清楚我做錯了什麼。用matplotlib無法正確顯示矢量字段
要繪製的矢量場是固定高度處的無限長直線的磁場。我應該得到的是這樣的:
我知道,對於矢量場(在圓柱座標)的計算公式如下:
B(R)=(U0/2 * PI)*( I/R)
其中: U0是一個恆定(正), i是在導線的電流, r是從電線(z軸)的距離。
下面是圖片,我得到使用下面的代碼: 正如你所看到的,除了與線的中心問題,在左半向量指向錯誤的方向。 另外,是否有一個功能,繪製在3D領域?如matlab中的顫動3? 由於
x,y = np.meshgrid(x,y)
def E(x,y):
i = 3
mu = 2
mag = (mu/(2*np.pi))*(i/np.sqrt((x)**2+(y)**2))
ey = mag * (np.cos(np.arctan(y/x)))
ex = mag * (-np.sin(np.arctan(y/x)))
return ex,ey
ex,ey = E(x,y)
plt.quiver(x,y,ex,ey,pivot='middle',color='r',headwidth=4,headlength=6)
plt.show()
反三角函數功能[只在特定的時間間隔定義(http://mathworld.wolfram.com/InverseTrigonometricFunctions.html)。指向錯誤方向的箭頭不是繪圖錯誤,而是計算'ex,ey'時的疏忽。 **劇透:你想使用'np.arctan2' **。 – wflynny
我犯了多麼愚蠢的錯誤!感謝您的幫助! – mickkk