简介
本实验将指导你使用 Python Matplotlib 创建一个图表。Matplotlib 是用于 Python 编程语言的绘图库。在本实验中,你将学习如何自定义图表的属性,包括颜色、线宽等等。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入必要的模块
首先,我们需要导入必要的模块。在这种情况下,我们需要导入 matplotlib.pyplot 和 numpy。
import matplotlib.pyplot as plt
import numpy as np
定义属性周期并获取颜色
接下来,我们需要定义属性周期并从中获取颜色。
prop_cycle = plt.rcParams['axes.prop_cycle']
colors = prop_cycle.by_key()['color']
定义线宽
现在,我们为图表定义线宽。
lwbase = plt.rcParams['lines.linewidth']
thin = lwbase / 2
thick = lwbase * 3
创建子图
我们创建一个 2x2 的子图网格。
fig, axs = plt.subplots(nrows=2, ncols=2, sharex=True, sharey=True)
添加水平和垂直线
现在,我们使用属性周期中的颜色为每个子图添加水平和垂直线。
for icol in range(2):
if icol == 0:
lwx, lwy = thin, lwbase
else:
lwx, lwy = lwbase, thick
for irow in range(2):
for i, color in enumerate(colors):
axs[irow, icol].axhline(i, color=color, lw=lwx)
axs[irow, icol].axvline(i, color=color, lw=lwy)
自定义子图
我们通过将底部子图的背景颜色设置为黑色、设置 x 轴刻度并为每个子图添加标题来进行自定义。
axs[1, icol].set_facecolor('k')
axs[1, icol].xaxis.set_ticks(np.arange(0, 10, 2))
axs[0, icol].set_title(f'line widths (pts): {lwx:g}, {lwy:g}',
fontsize='medium')
自定义 y 轴刻度
我们为最左边的子图自定义 y 轴刻度。
for irow in range(2):
axs[irow, 0].yaxis.set_ticks(np.arange(0, 10, 2))
为图表添加标题
我们为整个图表添加一个标题。
fig.suptitle('Colors in the default prop_cycle', fontsize='large')
显示图表
最后,我们显示该图表。
plt.show()
总结
在本实验中,我们学习了如何使用 Python Matplotlib 创建图表。我们自定义了图表的属性,包括颜色和线宽。我们还学习了如何创建子图并自定义它们的外观。