缩放内嵌轴

Beginner

This tutorial is from open-source community. Access the source code

简介

Matplotlib 是一个用于在 Python 中创建静态、动画和交互式可视化的 Python 库。它是数据可视化的强大工具,在科学界被广泛使用。在本实验中,我们将学习如何在 Matplotlib 绘图中创建一个放大区域。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。

导入必要的库

第一步是导入必要的库。在这个例子中,我们将使用 NumPy 和 Matplotlib。

import numpy as np
from matplotlib import cbook
from matplotlib import pyplot as plt

创建绘图

接下来,我们将使用一些示例数据创建一个绘图。我们将使用二元正态分布作为我们的数据源。

fig, ax = plt.subplots()

## make data
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")  ## 15x15 数组
Z2 = np.zeros((150, 150))
ny, nx = Z.shape
Z2[30:30+ny, 30:30+nx] = Z
extent = (-3, 4, -4, 3)

ax.imshow(Z2, extent=extent, origin="lower")

添加一个内嵌图

在这一步中,我们将向主图中添加一个内嵌图。这个内嵌图将展示主图的一个放大区域。

## inset axes....
x1, x2, y1, y2 = -1.5, -0.9, -2.5, -1.9  ## 原始图像的子区域
axins = ax.inset_axes(
    [0.5, 0.5, 0.47, 0.47],
    xlim=(x1, x2), ylim=(y1, y2), xticklabels=[], yticklabels=[])
axins.imshow(Z2, extent=extent, origin="lower")

添加一个矩形以显示放大区域

在这一步中,我们将在主图中添加一个矩形,以显示放大区域所在的位置。

ax.indicate_inset_zoom(axins, edgecolor="black")

显示绘图

最后,我们将使用 plt.show() 函数显示绘图。

plt.show()

总结

在本实验中,我们学习了如何在 Matplotlib 绘图中创建一个放大区域。我们使用示例数据创建了一个主图,添加了一个内嵌图以显示主图的放大区域,并添加了一个矩形来显示放大区域的位置。然后,我们使用 plt.show() 函数显示了该绘图。