matplotlib.axes.Axes.apply_aspect#

Axes.apply_aspect(position=None)[源]#

根据指定的数据纵横比调整 Axes。

根据 get_adjustable 的设置,这将修改 Axes 框(位置)或视图限制。在前一种情况下,get_anchor 将影响位置。

参数:
positionNone 或 .Bbox

注意

此参数因历史原因而存在,并被视为内部参数。终端用户不应使用它。

如果不是 None,这定义了图中 Axes 的 Bbox 位置。有关更多详细信息,请参阅 get_position

另请参阅

matplotlib.axes.Axes.set_aspect

关于纵横比处理的描述。

matplotlib.axes.Axes.set_adjustable

设置 Axes 如何调整以达到所需的纵横比。

matplotlib.axes.Axes.set_anchor

在有额外空间的情况下设置位置。

matplotlib.figure.Figure.draw_without_rendering

更新图形中所有过时的组件。

备注

在绘制每个 Axes 时,此方法会自动调用。如果您需要在绘制 Figure 之前更新 Axes 位置和/或视图限制,则可能需要自行调用它。

一个范围更广的替代方案是 Figure.draw_without_rendering,它会更新图形中所有过时的组件,而不仅仅是单个 Axes 的定位/视图限制。

示例

一个典型的使用示例如下。imshow 将纵横比设置为 1,但出于性能原因,调整 Axes 位置和范围以反映这一点会延迟到渲染时进行。如果您想提前知道 Axes 的大小,需要调用 apply_aspect 来获取正确的值。

>>> fig, ax = plt.subplots()
>>> ax.imshow(np.zeros((3, 3)))
>>> ax.bbox.width, ax.bbox.height
(496.0, 369.59999999999997)
>>> ax.apply_aspect()
>>> ax.bbox.width, ax.bbox.height
(369.59999999999997, 369.59999999999997)