matplotlib中axis('equal')和axis('scaled')的区别

Phi*_*ip8 5 python matplotlib

在参考文献中,它们被描述为:

axis('equal') 更改 x 或 y 轴的限制,以便 x 和 y 的相等增量具有相同的长度;一个圆是圆形的。:

axis('scaled') 通过更改图框的尺寸而不是轴数据限制来实现相同的结果。:

但是我不理解“通过改变图框的尺寸”的部分。所以我直接比较

import numpy as np
import matplotlib.pyplot as plt

plt.close('all')

x = np.array(np.linspace(-np.pi, np.pi))
y = np.sin(x)

ax1 = plt.subplot(2, 1, 1)
ax1 = plt.plot(x, y)
plt.axis('scaled')

ax1 = plt.subplot(2, 1, 2)
plt.plot(x, y)
plt.axis('equal')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

当使用 plt.axis('scaled') 绘制时,宽度变短只有细微的差别。

我怎样才能更好地了解差异?

Imp*_*est 7

如果使用不同的数据,我认为差异会更加明显。

import numpy as np
import matplotlib.pyplot as plt

x = np.array(np.linspace(-np.pi, np.pi))
y = np.sin(x)*np.pi
ax1 = plt.subplot(2, 1, 1)
ax1 = plt.plot(x, y)
plt.axis('scaled')
ax1 = plt.subplot(2, 1, 2)
plt.plot(x, y)
plt.axis('equal')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

因此,区别在于绘图周围的轴是否根据方面发生变化,或者它们是否与通常的子图中保持相同并进行缩放,以使绘图数据的方面相等。