A quantidade que incorpora magnitude e direção é conhecida como Vetores. Em palavras simples, podemos dizer que o Vector Field é um engajamento ou colaboração de tais vetores em um subconjunto do espaço. Os campos vetoriais são os principais aspectos para entender nosso ambiente na vida real.

Para mais intuição, você pode pensar em um campo vetorial como representando uma função multivariável cujos espaços de entrada e saída têm a mesma dimensão. O comprimento das setas desenhadas em um campo vetorial geralmente não está em escala, mas a proporção do comprimento de um vetor para outro deve ser precisa.

Neste artigo, vamos discutir como plotar um campo vetorial em python. Para realizar esta tarefa, vamos usar o método quiver() e o método streamplot() no módulo matplotlib .

Sintaxe:

Para plotar um campo vetorial usando o método quiver() :



matplotlib.pyplot.quiver (X, Y, U, V, ** kw) 

Onde X , Y definem a localização do vetor e U , V são setas direcionais em relação à localização do vetor.

Para plotar um campo vetorial usando o método streamplot() :

matplotlib.pyplot.streamplot (X, Y, U, V, densidade = 1, largura de linha = Nenhum, cor = Nenhum, ** kw)

Onde X, Y são grade uniformemente espaçadas [matriz 1D] e U e V representam a velocidade da corrente de cada ponto presente na grade. A densidade é o não. de vetor por área do gráfico. A largura da linha representa a espessura das linhas de fluxo.

Abaixo estão alguns exemplos que descrevem como plotar campos de vetor usando o módulo matplotlib :

Exemplo 1: Plotar um único vetor usando o método quiver() no módulo matplotlib .

import numpy as np 
import matplotlib.pyplot as plt 
X = [0] 
Y = [0] 
U = [2]   
V = [1]   
plt.quiver(X, Y, U, V, color='b', units='xy', scale=1) 
plt.title('Single Vector') 
plt.xlim(-2, 5) 
plt.ylim(-2, 2.5) 
plt.grid() 
plt.show() 

Resultado:

Exemplo 2: Gerando vários vetores usando o método quiver() .

import numpy as np 
import matplotlib.pyplot as plt 
x, y = np.meshgrid(np.linspace(-5, 5, 10),  
                   np.linspace(-5, 5, 10)) 
u = -y/np.sqrt(x**2 + y**2) 
v = x/(x**2 + y**2) 
plt.quiver(x, y, u, v, color='g') 
plt.title('Vector Field') 
plt.xlim(-7, 7) 
plt.ylim(-7, 7) 
plt.grid() 
plt.show() 

Resultado:

Exemplo 3: Plotagem de múltiplos vetores usando o método streamplot() no módulo matplotlib .

import numpy as np 
import matplotlib.pyplot as plt 
x = np.arange(-5,5,0.1) 
y = np.arange(-5,5,0.1) 
X,Y = np.meshgrid(x,y) 
Ex = (X + 1)/((X+1)**2 + Y**2) - (X - 1)/((X-1)**2 + Y**2) 
Ey = Y/((X+1)**2 + Y**2) - Y/((X-1)**2 + Y**2) 
plt.figure(figsize=(10, 10)) 
plt.streamplot(X,Y,Ex,Ey, density=1.4, linewidth=None, color='#A23BEC') 
plt.plot(-1,0,'-or') 
plt.plot(1,0,'-og') 
plt.title('Electromagnetic Field') 
plt.grid() 
plt.show()

Resultado: