📜  NumPy-使用Matplotlib的直方图(1)

📅  最后修改于: 2023-12-03 14:44:49.109000             🧑  作者: Mango

NumPy是一个Python库,它提供了多维数组对象,以及用于处理数组的各种函数。Matplotlib是一个广泛使用的Python库,用于创建高质量图形,包括线图、散点图、柱状图和直方图等。在这篇文章中,我们将介绍如何使用Matplotlib的直方图功能。

安装NumPy和Matplotlib

在使用NumPy和Matplotlib之前,首先需要安装它们。可以使用pip命令来安装它们,如下所示:

pip install numpy
pip install matplotlib
创建一个随机数组

在本教程中,我们将使用NumPy创建一个包含10000个随机数的一维数组。请使用以下代码创建一个随机数组:

import numpy as np

np.random.seed(42)
x = np.random.randn(10000)

本代码使用了np.random.seed(42)来确保每次运行代码都会生成相同的随机数组。x是一个包含10000个随机数的数组。

绘制直方图

使用Matplotlib的hist()函数可以绘制直方图。hist()函数接受一个数组参数和一个可选的参数,这个参数是将数组分成多少个条形形状。在本例中,我们将使用hist()函数将x分成50个条形形状,如下所示:

import matplotlib.pyplot as plt

plt.hist(x, bins=50)
plt.show()

以上代码将生成一个直方图,其中x轴表示随机数,y轴表示每个bin中包含的随机数的数量。

添加标题,标签和网格

Matplotlib可以很容易地添加标题、标签和网格。使用plt.title()函数可以添加标题,使用plt.xlabel()和plt.ylabel()函数可以添加x轴和y轴的标签。使用plt.grid()函数可以添加网格。请查看下面的例子。

plt.hist(x, bins=50)
plt.title('Random distribution')
plt.xlabel('Random numbers')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()

以上代码将生成一个带有标题、标签和网格的直方图。

自定义直方图的参数

使用hist()函数的可选参数参数可以自定义直方图的参数。下面列出了hist()函数的一些常用的可选参数:

  • density:如果设置为True,则y轴表示密度(即概率密度函数),而不是数量。
  • color:直方图的颜色。
  • alpha:直方图的透明度。
  • range:x轴的范围。
  • cumulative:如果设置为True,则y轴显示累积分布函数。

使用以下代码可以自定义直方图的一些参数:

plt.hist(x, bins=50, density=True, color='g', alpha=0.75, range=(-3, 3), cumulative=True)
plt.title('Random distribution')
plt.xlabel('Random numbers')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()

以上代码将生成一个自定义参数的直方图。

结论

在本文中,我们介绍了如何使用Matplotlib的直方图功能。我们首先创建了一个随机数组,然后使用hist()函数和一些可选参数来绘制和自定义直方图。最后,我们添加了标题、标签和网格来改善直方图的可读性。如果你对Matplotlib的其他功能感兴趣,请查看Matplotlib官方文档。