trazar plots múltiples pero con rangos de desplazamiento de Python

Me gustaría trazar una función de e y nu donde e es la excentricidad y nu la verdadera anomalía. Solo estoy mirando las órbitas elípticas así que 0<e<1 . Sin embargo, cuando trato de relacionarlos entre sí, tengo un error de forma.

 ValueError: operands could not be broadcast together with shapes (10) (5000) 

Sé que esto se debe a que solo quiero 10 espacios para la excentricidad, pero ¿hay alguna forma de evitar esto?

 import numpy as np e = np.arange(0, 1, 0.1) vvals = [[] for i in range(len(e))] nu = np.linspace(0, 2 * np.pi, 5000) for i in e: for j in nu: i = float(i) j = float(j) v = np.sqrt(e ** 2 + 2 * e * np.cos(nu) + 1) i = int(i) vvals[i].append(v) for i in e: pylab.plot(nu, vvals[i]) pylab.show() 

Creo que esto es lo que estás tratando de hacer:

 import numpy as np e = np.arange(0, 1, 0.1) vvals = [] nu = np.linspace(0, 2 * np.pi, 5000) for i in e: v = np.sqrt(i ** 2 + 2 * i * np.cos(nu) + 1) vvals.append(v) for v in vvals: pylab.plot(nu, v) pylab.show() 

numpy transmisión numpy es tu amiga;)

Si quieres ser realmente lujoso:

 import numpy as np e = np.arange(0, 1, 0.1).reshape(-1, 1) nu = np.linspace(0, 2 * np.pi, 5000).reshape(1, -1) vvals = np.sqrt((e ** 2) * np.ones(nu.shape) + 2 * e * np.cos(nu) + 1) for v, _e in zip(vvals, e.ravel()): pylab.plot(nu.ravel(), v, label=str(_e)) pylab.legend() pylab.show()