创建内嵌轴

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Matplotlib 是 Python 中一个强大的数据可视化库。它提供了各种图表来以有意义的方式可视化数据。在本实验中,我们将学习如何使用 Matplotlib 中的 fig.add_axes 在主绘图轴内创建内嵌轴。

虚拟机使用提示

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

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

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

导入所需库

我们首先导入必要的库,其中包括 Matplotlib 和 NumPy。

import matplotlib.pyplot as plt
import numpy as np

生成数据

在这一步中,我们生成一些用于绘图的数据。我们将使用 NumPy 的 convolve 函数创建高斯色噪声,并使用 Matplotlib 进行绘制。

np.random.seed(19680801)
dt = 0.001
t = np.arange(0.0, 10.0, dt)
r = np.exp(-t[:1000] / 0.05)
x = np.random.randn(len(t))
s = np.convolve(x, r)[:len(x)] * dt

fig, main_ax = plt.subplots()
main_ax.plot(t, s)

设置界限和标签

在这一步中,我们为主绘图轴设置界限和标签。

main_ax.set_xlim(0, 1)
main_ax.set_ylim(1.1 * np.min(s), 2 * np.max(s))
main_ax.set_xlabel('time (s)')
main_ax.set_ylabel('current (nA)')
main_ax.set_title('Gaussian colored noise')

创建内嵌轴

在这一步中,我们使用 fig.add_axes 在主绘图轴内创建两个内嵌轴。一个将显示数据的直方图,另一个将显示脉冲响应。

## 创建右侧内嵌轴
right_inset_ax = fig.add_axes([.65,.6,.2,.2], facecolor='k')
right_inset_ax.hist(s, 400, density=True)
right_inset_ax.set(title='Probability', xticks=[], yticks=[])

## 创建左侧内嵌轴
left_inset_ax = fig.add_axes([.2,.6,.2,.2], facecolor='k')
left_inset_ax.plot(t[:len(r)], r)
left_inset_ax.set(title='Impulse response', xlim=(0,.2), xticks=[], yticks=[])

显示绘图

在这一步中,我们使用 plt.show() 函数显示绘图。

plt.show()

总结

在本实验中,我们学习了如何使用 Matplotlib 中的 fig.add_axes 在主绘图轴内创建内嵌轴。我们生成了数据,设置了界限和标签,创建了两个内嵌轴,并显示了绘图。当我们想要放大绘图的特定区域或显示与数据相关的其他信息时,这种技术会很有用。