Need help with direction field plot

I'm relatively new to matplotlib so I need some help. I'm trying to make a
direction field plot for visualzing solutions to differential eqs. My first
attempt at a simple plot came out all right but I can't figure out why the
plotted lines are not the same length. The block of code that does all of
the work is...

for x in ax1.xaxis.iter_ticks(): #Iterate
over x-ticks
    for y in ax1.yaxis.iter_ticks(): #iterate
over y-ticks
# Solve for local slope at point to be evaluated (dy/dx)

        yp = 9.8 - ((np.float(y[1]))/4) #yp = y` as
in dy/dx
# Plot line based on slope

        cpx = np.float(x[1]) #cpx = x-coord of line center,
convert x-tick value to float
        cpy = np.float(y[1]) #cpy = y-coord of line center,
covnert y-tick value to float

        a = np.arctan(yp) #a = angle between line and
        px = np.cos(a)*(L/2) #px = x offset from line center to
        py = np.sin(a)*(L/2) #py = y offset from line center
to end

        tpx = cpx + px #tpx = x-coord of right hand
end of line
        tpy = cpy + py #tpy = y-coord of right hand
end of line

        bpx = cpx - px #bpx = x-coord of left hand end
of line
        bpy = cpy - py #bpy = y-coord of left hand end
of line
        Length = np.sqrt(((tpx-bpx)**2)+((tpy-bpy)**2))
       #just a quick check of the line length accoring to the coordinates of
the ends

        ax1.plot([bpx, tpx], [bpy, tpy], color='black', linewidth=0.75)

As you can see in the attached figure (see below), the lines seem to plot in
the right locations and right angles but the lengths are not constant (not
intended - seem to be twice as long near the middle of the chart). Am I
missing something obvious? Why are the lines near the center of the chart
longer? Thanks in advance for any help provided.



View this message in context:
Sent from the matplotlib - users mailing list archive at