想象以下简单情况:
import numpy as np
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot(np.arange(10))
ax1.set_aspect("equal")
ax2.plot(np.arange(10), np.arange(0, 1, .1))
plt.show()
什么是最好/最简单的解决方案,以使ax2与ax1具有相同的宽度/高度,无论ax2的长宽比是多少?
最佳答案
对于您的特定情况,可以将ax2
的长宽比设置为10,例如以下所示:
import numpy as np
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot(np.arange(10))
ax1.set_aspect("equal")
ax2.plot(np.arange(10), np.arange(0, 1, .1))
# Determining the ranges
x1,x2 = ax2.get_xlim()
y1,y2 = ax2.get_ylim()
xRange = x2-x1
yRange = y2-y1
ax2.set_aspect(xRange/yRange)
plt.show()
干杯