Python Matplotlib 直方图教程

PythonPythonBeginner
立即练习

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

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

简介

本实验是一个关于如何使用 Python Matplotlib 库创建直方图的分步教程。直方图是数值数据分布的图形表示。它是连续变量概率分布的一种估计。

虚拟机使用提示

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

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

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

导入必要的库

在这一步中,我们将导入两个库:numpy 和 matplotlib。Numpy 是一个用于 Python 编程语言的库,它增加了对大型多维数组和矩阵的支持。Matplotlib 是一个用于 Python 编程语言的绘图库。

import numpy as np
import matplotlib.pyplot as plt

生成样本数据

在这一步中,我们将使用 numpy 生成样本数据。我们将从均值为 100、标准差为 15 的正态分布中生成随机数据。

np.random.seed(19680801)
mu = 100  ## 分布的均值
sigma = 15  ## 分布的标准差
x = mu + sigma * np.random.randn(437)

创建直方图

在这一步中,我们将使用 matplotlib 创建一个直方图。我们将把 bins 的数量设置为 50,并启用密度参数以对 bin 的高度进行归一化,使得直方图的积分等于 1。

num_bins = 50
fig, ax = plt.subplots()
n, bins, patches = ax.hist(x, num_bins, density=True)

添加最佳拟合线

在这一步中,我们将为直方图添加一条最佳拟合线。我们将计算该线的 y 值,并将其绘制在直方图之上。

y = ((1 / (np.sqrt(2 * np.pi) * sigma)) *
     np.exp(-0.5 * (1 / sigma * (bins - mu))**2))
ax.plot(bins, y, '--')

自定义直方图

在这一步中,我们将通过添加标签、标题和调整布局来自定义直方图。

ax.set_xlabel('Smarts')
ax.set_ylabel('Probability density')
ax.set_title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')
fig.tight_layout()
plt.show()

总结

在这个实验中,我们学习了如何使用 Python 的 Matplotlib 库来创建直方图。我们从正态分布生成了样本数据,并使用 matplotlib 创建了一个直方图。我们还添加了一条最佳拟合线,并通过添加标签和标题来自定义直方图。