可能这已经被问到其他地方,但我找不到答案。如果是这种情况,我很抱歉。
如何获得轴尺寸相同的子图? 我需要aspect ='equal',以便正确缩放相对距离。
这是我正在使用的代码
X_A = [0, 0.4, 0.8, 1, 0.2, 0.5, 0.3]
Y_A = [0.3, 0.8, 0, 1, 0.8, 0.2, 0.9]
X_B = [0, 0.4, 0.8, 1, 0.2, 0.5, 0.3]
Y_B = [2, 0, 0.8, 3, 3, 2.1, 0.2]
fig, axes = plt.subplots(1, 2, figsize=(10,10))
ax1 = plt.subplot(121)
ax1.set_aspect('equal')
ax1.set_title('Dataset A', fontsize=20)
ax1.scatter(X_A, Y_A)
ax2 = plt.subplot(122)
ax2.set_aspect('equal')
ax2.set_title('Dataset B', fontsize=20)
ax2.scatter(X_B, Y_B)
有一些简单的设置可以调整或需要一些数学?
答案 0 :(得分:1)
您可能希望将adjustable
参数用于set_aspect
,
ax.set_aspect('equal', adjustable="datalim")
这不会调整轴框,而是调整轴的限制。
完整的例子,
import matplotlib.pyplot as plt
X_A = [0, 0.4, 0.8, 1, 0.2, 0.5, 0.3]
Y_A = [0.3, 0.8, 0, 1, 0.8, 0.2, 0.9]
X_B = [0, 0.4, 0.8, 1, 0.2, 0.5, 0.3]
Y_B = [2, 0, 0.8, 3, 3, 2.1, 0.2]
fig, (ax, ax2) = plt.subplots(1, 2, figsize=(6,6))
ax.set_aspect('equal', adjustable="datalim")
ax.set_title('Dataset A', fontsize=20)
ax.scatter(X_A, Y_A)
ax2.set_aspect('equal', adjustable="datalim")
ax2.set_title('Dataset B', fontsize=20)
ax2.scatter(X_B, Y_B)
ax2.autoscale()
plt.show()
制造