Set the aspect ratio of a plot
To fix the aspect ratio of a plot, we use the set_aspect
method from the axes class. But first, here is an example of what happens when you don't fix the aspect ratio:
In [1]:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,pi,0.01)
y = np.sin(20*x)
plt.figure(figsize = (5,4))
plt.plot(x,y)
plt.title('plot with undefined aspect ratio')
plt.show()
Now if we change the figure size, the plot gets distored:
In [2]:
plt.figure(figsize=(10,3))
plt.plot(x,y)
plt.title('plot with undefined aspect ratio')
plt.show()
By fixing the aspect ratio we can prevent future distortions. Below, we use the same figure size as the plot above:
In [3]:
plt.figure(figsize=(10,3)) #fig size same as before
ax = plt.gca() #you first need to get the axis handle
ax.set_aspect(1.5) #sets the height to width ratio to 1.5.
#Use help(ax.set_aspect) for more options.
plt.plot(x,y)
plt.title('plot with Fixed aspect ratio')
plt.show()