Comment tracer un simple champ vectoriel avec matplotlib ?

Published: 07 mars 2019

DMCA.com Protection Status

Pour tracer un champ vectoriel avec matplotlib, il existe la fonction quiver:

quiver(X, Y, U, V, C, **kw)

avec

  • X coordonnée x de l'origine du vecteur
  • Y coordonnée y de l'origine du vecteur
  • U coordonnée x de l'extrémité du vecteur
  • V coordonnée y de l'extrémité du vecteur
  • C couleur du vecteur

Tracer un simple vecteur avec quiver

Exemple de comment tracer un simple vecteur:

Comment tracer un vecteur ou un champ vectoriel avec matplotlib ?
Comment tracer un vecteur ou un champ vectoriel avec matplotlib ?

import matplotlib.pyplot as plt
import numpy as np

X = np.array((0))
Y= np.array((0))
U = np.array((2))
V = np.array((-2))

fig, ax = plt.subplots()
q = ax.quiver(X, Y, U, V,units='xy' ,scale=1)

plt.grid()

ax.set_aspect('equal')

plt.xlim(-5,5)
plt.ylim(-5,5)

plt.title('How to plot a vector in matplotlib ?',fontsize=10)

plt.savefig('how_to_plot_a_vector_in_matplotlib_fig3.png', bbox_inches='tight')
#plt.show()
plt.close()

Tracer un simple champ vectoriel avec quiver

Comment tracer un vecteur ou un champ vectoriel avec matplotlib ?
Comment tracer un vecteur ou un champ vectoriel avec matplotlib ?

import matplotlib.pyplot as plt
import numpy as np

X, Y = np.meshgrid(np.arange(-10, 10, 1), np.arange(-10, 10, 1))

x_shape = X.shape

U = np.zeros(x_shape)
V = np.zeros(x_shape)

for i in range(x_shape[0]):
    for j in range(x_shape[1]):
        U[i,j] = 1.0
        V[i,j] = 1.0

fig, ax = plt.subplots()
q = ax.quiver(X, Y, U, V, units='xy' ,scale=2, color='red')

ax.set_aspect('equal')

plt.xlim(-5,5)
plt.ylim(-5,5)

plt.title('How to plot a vector field using matplotlib ?',fontsize=10)

plt.savefig('how_to_plot_a_vector_field_in_matplotlib_fig1.png', bbox_inches='tight')
#plt.show()
plt.close()

Références

Image

of