I have a following function with takes 2 arguments psi,lam and returns 1 array y.
lam=np.arange(0,1,0.1) psi=np.deg2rad(np.arange(0,361,1)) def test(psi,lam): y=[] for i in range(len(lam)): sin_psi = np.sin(psi) cos_psi = np.cos(psi) sin_beta = lam*sin_psi cos_beta = np.sqrt(1.0 - sin_beta**2) ssin_pb = sin_psi*sin_beta y.append((lam*(cos_psi/cos_beta)**2 - ssin_pb)/cos_beta + cos_psi) plt.plot(psi,y[i]) return y I would like the function to return range(len(lam))=10 plots of y on the vertical axis against psi on x axis.
However, it seems to be only plotting the same curve multiple times. Not sure what I am missing?


sin_beta = lam[i]*sin_psi? And alsoy.append((lam[i[*(cos_psi/cos_beta)**2 ...))? A more "pythonic" approach would usefor lam_i in lam: