pythonmatplotlibaxisaspect-ratio

How do I equalize the scales of the x-axis and y-axis?


How do I create a plot where the scales of x-axis and y-axis are the same?

This equal ratio should be maintained even if I change the window size. Currently, my graph scales together with the window size.

I tried:

plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.axis('equal')

Solution

  • Use Axes.set_aspect in the following manner:

    from matplotlib import pyplot as plt
    plt.plot(range(5))
    plt.xlim(-3, 3)
    plt.ylim(-3, 3)
    ax = plt.gca()
    ax.set_aspect('equal', adjustable='box')
    plt.draw()