# How to check if a point is below or above a straight line using python ?

Example of how to check if a point is below or above a straight line using python ? Let's consider a line of equation y=f(x)=a*x+b, a point P with coordinates (xp,yp) is below the line if:

````yp - ( a * xp + b ) < 0`
```

or:

````yp - f(xp) < 0`
```

A point P with coordinates (xp,yp) is above the line if

````yp - ( a * xp + b ) > 0`
```

or:

````yp - f(xp) > 0`
```

A point P is on the line if and only if:

````yp - f(xp) = 0`
```

Example of python code to test if above or below a straight line:

````>>> import numpy as np`
` >>> def function( x ):`
`...     return 0.5 * x + 2`
`... `
` >>> x = np.arange(0,10,0.1)`
` >>> y = function(x)`
` >>> xp = 6.0 `
` >>> yp = 3.0 `
` >>> print 'Point est au dessus de la ligne ?: ', yp - function(xp) > 0 `
` Point est au dessus de la ligne ?:  False`
` >>> print 'Point est en dessous de la ligne ?: ', yp - function(xp) < 0 `
` Point est en dessous de la ligne ?:  True`
` >>> print 'Point est sur la ligne ?: ', yp - function(xp) == 0 `
` Point est sur la ligne ?:  False`
```

Python code to plot figure 1 and 2 using matplotlib:

````import matplotlib.pyplot as plt`
`import numpy as np`

`#----- Straight Line -----#`

`def function( x ):`
`    return 0.5 * x + 2`

`x = np.arange(0,10,0.1)`
`y = function(x)`

`plt.plot(x, y, 'k-', lw=2)`

`#----- Point 1 -----#`

`xp = 6.0 `
`yp = 3.0`

`print 'Point est au dessus de la ligne ?: ', yp - function(xp) > 0 `
`print 'Point est en dessous de la ligne ?: ', yp - function(xp) < 0 `
`print 'Point est sur la ligne ?: ', yp - function(xp) == 0`

`plt.scatter(xp,yp)`
`plt.plot( (xp,xp), (0,yp), 'b--', lw=1) `
`plt.plot( (0,xp), (yp,yp), 'b--', lw=1) `
`plt.plot( (0,xp), (function(xp),function(xp)), 'b--', lw=1) `
`plt.plot( (xp,xp), (0,function(xp)), 'b--', lw=1) `
`plt.text( xp+0.2, yp, 'P') `
`plt.text( xp+0.2, 0.2, 'xp') `
`plt.text( -0.4, yp, 'yp') `
`plt.text( -0.6, function(xp), 'f(xp)')`

`plt.xlim(0,10)`
`plt.ylim(0,10)`

`plt.savefig('output.png')`
`plt.show()`
```