¿Cómo trazar un campo vectorial simple en Matplotlib?

La cantidad que incorpora tanto la magnitud como la dirección se conoce como vectores. En palabras simples, podemos decir que Vector Field es un compromiso o colaboración de dichos vectores en un subconjunto del espacio. Los campos vectoriales son los aspectos clave para comprender nuestro entorno de la vida real.

Para mayor intuición, puede pensar en un campo vectorial como si representara una función multivariable cuyos espacios de entrada y salida tienen la misma dimensión. La longitud de las flechas dibujadas en un campo vectorial generalmente no está a escala, pero la relación entre la longitud de un vector y la de otro debe ser precisa.

En este artículo, vamos a discutir cómo trazar un campo vectorial en python. Para realizar esta tarea vamos a utilizar el método quiver() y el método streamplot() en el módulo matplotlib .

Sintaxis:

Para trazar un campo vectorial usando el método quiver() :

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

Donde X , Y definen la ubicación del Vector y U , V son flechas direccionales con respecto a la ubicación del Vector.

Para trazar un campo vectorial usando el método streamplot() :

matplotlib.pyplot.streamplot(X, Y, U, V, densidad=1, ancho de línea=Ninguno, color=Ninguno, **kw)

Donde X, Y son una cuadrícula espaciada uniformemente [array 1D] y U y V representan la velocidad de la corriente de cada punto presente en la cuadrícula. La densidad es el no. de vector por área de la parcela. El ancho de línea representa el grosor de las líneas de corriente.

A continuación se muestran algunos ejemplos que muestran cómo trazar campos vectoriales utilizando el módulo matplotlib :

Ejemplo 1: Trazar un solo vector usando el método quiver() en el módulo matplotlib .

Python3

# Import libraries
import numpy as np
import matplotlib.pyplot as plt
  
# Vector origin location
X = [0]
Y = [0]
  
# Directional vectors
U = [2]  
V = [1]  
  
# Creating plot
plt.quiver(X, Y, U, V, color='b', units='xy', scale=1)
plt.title('Single Vector')
  
# x-lim and y-lim
plt.xlim(-2, 5)
plt.ylim(-2, 2.5)
  
# Show plot with grid
plt.grid()
plt.show()

Producción:

Ejemplo 2: Generación de múltiples vectores usando el método quiver() .

Python3

# Import required modules
import numpy as np
import matplotlib.pyplot as plt
  
# Meshgrid
x, y = np.meshgrid(np.linspace(-5, 5, 10), 
                   np.linspace(-5, 5, 10))
  
# Directional vectors
u = -y/np.sqrt(x**2 + y**2)
v = x/(x**2 + y**2)
  
# Plotting Vector Field with QUIVER
plt.quiver(x, y, u, v, color='g')
plt.title('Vector Field')
  
# Setting x, y boundary limits
plt.xlim(-7, 7)
plt.ylim(-7, 7)
  
# Show plot with grid
plt.grid()
plt.show()

Producción:

Ejemplo 3: Trazado de múltiples vectores usando el método streamplot() en el módulo matplotlib .

Python3

# Import required modules
import numpy as np
import matplotlib.pyplot as plt
  
# 1D arrays
x = np.arange(-5,5,0.1)
y = np.arange(-5,5,0.1)
  
# Meshgrid
X,Y = np.meshgrid(x,y)
  
# Assign vector directions
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)
  
# Depict illustration
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')
  
# Show plot with grid
plt.grid()
plt.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por kapseadk y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *