具有相同轴大小的子图具有set aspect ='equal'

问题描述 投票:2回答:1

可能这已经在其他地方问了,但我找不到答案。对不起,如果是这样的话,我很抱歉。

如何获得具有相同轴尺寸的子图?我需要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)

我得到了这个:enter image description here

有一些简单的设置可以调整或需要一些数学?

python matplotlib
1个回答
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()

生产

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.