使用 Matplotlib 创建图表

PythonPythonBeginner
立即练习

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

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

简介

本实验将指导你使用 Python Matplotlib 创建一个图表。Matplotlib 是用于 Python 编程语言的绘图库。在本实验中,你将学习如何自定义图表的属性,包括颜色、线宽等等。

虚拟机使用提示

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

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

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

导入必要的模块

首先,我们需要导入必要的模块。在这种情况下,我们需要导入 matplotlib.pyplotnumpy

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 创建图表。我们自定义了图表的属性,包括颜色和线宽。我们还学习了如何创建子图并自定义它们的外观。