2012-07-18 2 views
0

Si j'ai une liste avec des tuples qui reflète la position à chaque fois, et tout ce que j'ai besoin est d'avoir un graphique qui montre ces vecteurs comme countour lignes de la vélocité (une autre liste). Comment dois-je le faire?Countour lignes Matplotlib Python

Par exemple:

import matplotlib.pyplot as plt 
import numpy as np 
position = [(12,14), (12.22,13.22), (15, 17)] 
velocity = [4.55,2.13,5] 
+0

ce qui est une ligne de Countour? –

+0

Votre question n'est pas claire. Comment proposez-vous de générer une ligne de contour à partir de ces données limitées? Typiquement, les contours sont utilisés pour fournir une représentation bidimensionnelle de la valeur d'une fonction à deux entrées (par exemple, élévation à divers points). Vous avez juste quelques nombres isolés. – BrenBarn

+0

C'est juste l'idée. Supposons que j'ai la position comme une liste de vecteurs, et la vitesse pour chaque position. J'ai besoin d'un graphique qui me relie à chaque vecteur de position avec sa vélocité. Je pensais que la ligne countour le ferait très bien. Tu ne penses pas? Je ne suis pas sûr de savoir comment je devrais le faire – Blas

Répondre

2

Utilisez gridData() pour convertir les points de dispersion dans les données de la grille, voici un exemple:

import numpy as np 
from scipy.interpolate import griddata 
import matplotlib.pyplot as plt 
np.random.seed(0) 

x = np.random.normal(size=200) 
y = np.random.normal(size=200) 
v = np.sqrt(x**2+y**2) 

xg, yg = np.mgrid[x.min():x.max():100j, y.min():y.max():100j] 
vg = griddata((x, y), v, (xg, yg), method='cubic') 
plt.contourf(xg, yg, vg) 
plt.scatter(x, y, c=v) 
plt.show() 

La sortie est:

enter image description here

+0

Magnifique! Je vous remercie – Blas

1

Si vous voulez tracer la vitesse à chaque point, alors vous devriez essayer quiver. Il fait un champ de direction (flèches). Comme la vitesse est la quantité vectorielle, elle a à la fois un composant x et y.

import pylab as plt 

x=[12, 13, 14, 15, 16] # x-axis coordinates 
y=[14, 15, 16, 17, 18] # y-axis coordinates 

v_x=[6, 6, 6, 6, 6] # x-component of velocity 
v_y=[1,4,3,2,1]  # y-component of velocity 

plt.quiver(x,y,v_x,v_y) 
plt.xlim(11,17) 
plt.ylim(13,19) 

plt.show() 

Jetez un oeil here si vous voulez en savoir plus sur quiver.

En revanche, contour est des courbes le long desquelles une variable a une valeur constante. Jetez un oeil here si vous voulez en savoir plus.

Questions connexes