Set the axes limits in Matplotlib

The scatter() draws points in Matplotlib.

import numpy as np
from matplotlib import pyplot

a = np.array([1, 0])
b = np.array([3, 4])

x = np.array([a[0], b[0]])
y = np.array([a[1], b[1]])

pyplot.scatter(x, y)
pyplot.savefig('axes_auto.jpg')

The range of x, y axes are set automatically and many points may by placed just on the axes. For avoiding that, Matplotlib has the set_xlim() and set_ylim() method.

Set the axes limits

import numpy as np
from matplotlib import pyplot

a = np.array([1, 0])
b = np.array([3, 4])

x = np.array([a[0], b[0]])
y = np.array([a[1], b[1]])

axes = pyplot.gca()
axes.set_xlim([-6, 6])
axes.set_ylim([-6, 6])

pyplot.scatter(x, y)
pyplot.savefig('axis_range.jpg')

You can set the axes limits in the figure by set_xlim() and set_ylim() but the aspect ratio is not 1:1 in the above figure.

Set aspect

So, when using set_xlim() and set_ylim() methods, set_aspect() should be used to set the aspect ratio of 1:1.

import numpy as np
from matplotlib import pyplot

a = np.array([1, 0])
b = np.array([3, 4])

x = np.array([a[0], b[0]])
y = np.array([a[1], b[1]])

axes = pyplot.gca()
axes.set_xlim([-6, 6])
axes.set_ylim([-6, 6])
axes.set_aspect(1)

pyplot.scatter(x, y)
pyplot.savefig('axis_aspect.jpg')

Matplotlib Axis

Matplotlib Tutorial