Python Forum

Full Version: Same line length in slope fields
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
How would one get the same line length of all the lines in the slope field while keeping the correct slope of each line? Since the change in y is equal to the slope times the change in x, I suspect one would need to define a function in the second for-loop that takes the change in y and x as inputs, yet I have a hard time seeing how one would formulate such a function.

[attachment=621]

def f(x,y):
    return -y/x
for m in [i for i in range(-4,5) if i!=0]:
    for n in [i for i in range(-4,5) if i!=0]:
        slope=f(m/2,n/2)
        plt.plot([m/2,m/2+1/8],[n/2,slope*1/8+n/2],color='k')
        plt.ylim(-2,2,1/2)
        plt.xlim(-2,2,1/2)
        plt.grid(True)
You need to define line length first.


from pylab import plt, np
def f(x,y):
    return -y/x

line_len = 0.2

for m in [i for i in range(-4,5) if i!=0]:
    for n in [i for i in range(-4,5) if i!=0]:
        slope=f(m/2,n/2)
        slope = np.arctan(slope)   # we need to clarify what slope means, is it an angle? or tan(angle)? what do we want?
        plt.plot([m/2,m/2+line_len * np.cos(slope)],[n/2,line_len * np.sin(slope)+n/2],color='k')
        plt.ylim(-2,2,1/2)
        plt.xlim(-2,2,1/2)
        plt.grid(True)