简介
在本实验中,我们将学习如何使用 Matplotlib Axes Divider 为图形中的子图创建自定义布局。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将学习如何使用 Matplotlib Axes Divider 为图形中的子图创建自定义布局。
虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。
我们将首先导入本实验所需的库:matplotlib.pyplot 和 mpl_toolkits.axes_grid1。
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import Divider
import mpl_toolkits.axes_grid1.axes_size as Size
我们将创建一个图形对象,并使用 fig.add_axes
方法设置四个坐标轴对象。
fig = plt.figure(figsize=(5.5, 4))
rect = (0.1, 0.1, 0.8, 0.8)
ax = [fig.add_axes(rect, label="%d" % i) for i in range(4)]
我们将使用 mpl_toolkits.axes_grid1.axes_size
模块中的 Divider
类以及 AxesX
和 AxesY
类来设置坐标轴分隔器。然后,我们将使用 new_locator
方法来设置每个坐标轴的位置。
horiz = [Size.AxesX(ax[0]), Size.Fixed(.5), Size.AxesX(ax[1])]
vert = [Size.AxesY(ax[0]), Size.Fixed(.5), Size.AxesY(ax[2])]
divider = Divider(fig, rect, horiz, vert, aspect=False)
ax[0].set_axes_locator(divider.new_locator(nx=0, ny=0))
ax[1].set_axes_locator(divider.new_locator(nx=2, ny=0))
ax[2].set_axes_locator(divider.new_locator(nx=0, ny=2))
ax[3].set_axes_locator(divider.new_locator(nx=2, ny=2))
我们将使用 set_xlim
、set_ylim
和 tick_params
方法来自定义每个坐标轴的范围和外观。
ax[0].set_xlim(0, 2)
ax[1].set_xlim(0, 1)
ax[0].set_ylim(0, 1)
ax[2].set_ylim(0, 2)
for ax1 in ax:
ax1.tick_params(labelbottom=False, labelleft=False)
最后,我们将使用 show
方法来显示绘图。
plt.show()
在本实验中,我们学习了如何使用 Matplotlib 坐标轴分隔器为图形中的子图创建自定义布局。我们创建了一个图形对象并设置了四个坐标轴对象,然后使用坐标轴分隔器将坐标轴排列在网格中。我们自定义了每个坐标轴的范围和外观,并使用 show
方法显示了绘图。