使用 Matplotlib 创建简单折线图

PythonPythonBeginner
立即练习

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

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

简介

本教程演示如何使用 Python 的 Matplotlib 库创建一个简单的折线图,并带有一个表示曲线下面积的阴影区域。该图包括一个文本标签、轴标签以及自定义刻度位置和标签。

虚拟机使用提示

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

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

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

定义函数

首先,定义要绘制的函数。在这个例子中,函数是 (x - 3) _ (x - 5) _ (x - 7) + 85。

def func(x):
    return (x - 3) * (x - 5) * (x - 7) + 85

定义积分限

接下来,定义积分的限。在这个例子中,限为 a = 2 和 b = 9。

a, b = 2, 9

创建 x 和 y 值

使用 numpylinspace 函数生成一系列 x 值。然后,使用步骤 1 中定义的函数生成相应的 y 值。

import numpy as np

x = np.linspace(0, 10)
y = func(x)

创建绘图

使用 subplots 创建一个图形和轴对象。使用 plot 绘制 x 和 y 值。使用 set_ylim 将 y 轴范围设置为从 0 开始。

fig, ax = plt.subplots()
ax.plot(x, y, 'r', linewidth=2)
ax.set_ylim(bottom=0)

创建阴影区域

使用 Polygon 补丁创建阴影区域。使用 linspace 和步骤 1 中定义的函数生成该区域的 x 和 y 值。然后,将该区域的顶点定义为元组列表。最后,创建 Polygon 对象并使用 add_patch 将其添加到轴上。

from matplotlib.patches import Polygon

ix = np.linspace(a, b)
iy = func(ix)
verts = [(a, 0), *zip(ix, iy), (b, 0)]
poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')
ax.add_patch(poly)

添加积分标签

使用 text 向绘图添加积分标签。该标签应位于 a 和 b 之间中点处,并使用数学文本进行格式化。

ax.text(0.5 * (a + b), 30, r"$\int_a^b f(x)\mathrm{d}x$",
        horizontalalignment='center', fontsize=20)

添加轴标签和刻度标签

使用 figtext 添加 x 轴和 y 轴标签。使用 spines 隐藏顶部和右侧的边框。使用 set_xticksset_yticks 设置自定义刻度位置和标签。

fig.text(0.9, 0.05, '$x$')
fig.text(0.1, 0.9, '$y$')

ax.spines[['top', 'right']].set_visible(False)
ax.set_xticks([a, b], labels=['$a$', '$b$'])
ax.set_yticks([])

显示绘图

使用 show 来显示绘图。

plt.show()

总结

本教程展示了如何使用 Python 的 Matplotlib 库创建一个简单的折线图,并带有一个表示曲线下面积的阴影区域。该图包括一个文本标签、轴标签以及自定义的刻度位置和标签。按照本教程中概述的步骤,你可以为自己的数据创建类似的图。