简介
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 在主绘图轴内创建内嵌轴。我们生成了数据,设置了界限和标签,创建了两个内嵌轴,并显示了绘图。当我们想要放大绘图的特定区域或显示与数据相关的其他信息时,这种技术会很有用。