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)