简体   繁体   中英

Set the plot y-axis and x-axis ratio equal

import numpy as np
import matplotlib.pyplot as plt
plt.figure(1)
plt.subplot(211)
xs = np.linspace(-5,5,500)
ys = np.sqrt(5**2 - xs**2)

plt.plot(xs,ys)
plt.plot(xs,-ys)

plt.subplot(212)
plt.plot(xs, xs**2)
plt.show()

here is the code i generate, was wondering that if i want keep the upper plot x and y ratio be 1:1 so that the ball will always look round no matter how many subplot inside this figure.

I tried to find it from the website, seems not a simple solution..

When you create your subplot, you can tell it:

plt.subplot(211, aspect='equal')

If you've already created the subplot, you have to grab the current axes, which you can do using plt.gca , then call the set_aspect method:

plt.gca().set_aspect('equal')

Or, you can keep track of the axes from the beginning:

ax = plt.subplot(211)
ax.set_aspect('equal')

You may have to call

plt.draw()

In order to update the plot.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM