我從在二維中定義的給定向量場開始。我想在 1 x 1 的正方形中隨機選取 M 個點,并使用 matplotlib.pyplot 中的 quiver 在這些隨機選擇的點處繪制與所需向量場相對應的向量
import numpy as np
from math import *
import sys
import matplotlib.pyplot as plt
import numpy.random as rn
L=1
def dipole(x,y): #This is the vector field
Bx = 0
By = 0
position = [0,0]
moment = [0,1]
R = (x-position[0])**2 (y-position[1])**2
R = np.sqrt(R)
A = 3*(moment[0]*(x-position[0]) moment[1]*(y-position[1]))/R**5
Bx = A*(x-position[0])-moment[0]/R**3
By = A*(y-position[1])-moment[1]/R**3
return np.array([Bx,By])
#We now choose M random vectors in the square
xm = [] #array of random vector positions
vectors = [] #vectors at the random positions
M = int(1e1) #number of vectors
for i in range(M):
random_point = [rn.uniform(-L,L),rn.uniform(-L,L)]
xm.append(random_point)
vectors.append([dipole(random_point[0],random_point[1]). [0],dipole(random_point[0],random_point[1])[1]])
xm = np.array(xm)
vectors = np.array(vectors)
plt.quiver(xm,vectors[:,0],vectors[:,1])
回報
ValueError: Argument V has a size 10 which does not match 20, the number of arrow positions
寫作
plt.quiver([xm[:,0],xm[:,1]],np.array(vectors[:,0]),np.array(vectors[:,1]))
反而沒有幫助。有什么建議?謝謝
uj5u.com熱心網友回復:
plt.quiver(xm[:,0], xm[:,1],vectors[:,0],vectors[:,1])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/374572.html
標籤:Python matplotlib
