I am new to plotting with Python and can't really find an answer to the question: How can I get Cartesian coordinate plane in matplotlib? By this I mean perpendicular reference lines (coordinate axis) ended up with arrows, intersecting at the origin, (0,0), with the origin at the center of the plot.

Think about a a plane for doing high school geomtery, the following is a perfect example of what I need to achieve:

If you just want to plot some dots, scatter is what you want

```
from pylab import *
x = [0,2,-3,-1.5]
y = [0,3,1,-2.5]
color=['m','g','r','b']
scatter(x,y, s=100 ,marker='o', c=color)
show()
```

For pretty printing ( with arrows and dashed lines ) :

```
from pylab import *
import matplotlib.pyplot as plt
x = [0,2,-3,-1.5]
y = [0,3,1,-2.5]
color=['m','g','r','b']
fig = plt.figure()
ax = fig.add_subplot(111)
scatter(x,y, s=100 ,marker='o', c=color)
[ plot( [dot_x,dot_x] ,[0,dot_y], '-', linewidth = 3 ) for dot_x,dot_y in zip(x,y) ]
[ plot( [0,dot_x] ,[dot_y,dot_y], '-', linewidth = 3 ) for dot_x,dot_y in zip(x,y) ]
left,right = ax.get_xlim()
low,high = ax.get_ylim()
arrow( left, 0, right -left, 0, length_includes_head = True, head_width = 0.15 )
arrow( 0, low, 0, high-low, length_includes_head = True, head_width = 0.15 )
grid()
show()
```

There is still some work to do, but it is not far from the result :

Licensed under: CC-BY-SA with attribution

Not affiliated with: Stack Overflow