想象以下简单情况:

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()




干杯

10-04 22:21