欢迎访问宙启技术站
智能推送

在matplotlib.pyplot中绘制直方图的方法

发布时间:2023-12-18 02:57:42

在matplotlib.pyplot中,绘制直方图的方法主要是使用hist()函数。hist()函数可以接受一维数组或者多维数组作为输入,并将数据分成若干个区间,统计每个区间内数据的频数,并将结果绘制成直方图。

下面是一个使用例子,假设我们有一组学生的考试成绩数据,我们要绘制出成绩的直方图。

首先,我们需要导入matplotlib.pyplot库,并生成一组随机的学生考试成绩数据。

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
scores = np.random.randint(0, 100, 100)

接下来,我们使用hist()函数绘制直方图。

# 绘制直方图
plt.hist(scores, bins=10, color='skyblue')

hist()函数中,scores是我们的成绩数据,bins参数是我们将数据分成的区间数,这里选取了10个区间,color参数指定了直方图的颜色。

然后,我们可以添加一些其他的设置,如标题、标签和分割线。

# 添加标题和标签
plt.title("Distribution of Exam Scores")
plt.xlabel("Score")
plt.ylabel("Frequency")

# 添加垂直分割线
plt.axvline(np.mean(scores), color='red', linestyle='dashed', linewidth=1)

# 显示图形
plt.show()

在上面的代码中,title()函数设置了标题,xlabel()ylabel()函数设置了x轴和y轴的标签。axvline()函数添加了一条垂直的分割线,用于表示平均分,参数color指定了线的颜色,linestyle指定了线的样式,linewidth指定了线的宽度。

最后,使用show()函数显示图形。

完整的代码如下:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
scores = np.random.randint(0, 100, 100)

# 绘制直方图
plt.hist(scores, bins=10, color='skyblue')

# 添加标题和标签
plt.title("Distribution of Exam Scores")
plt.xlabel("Score")
plt.ylabel("Frequency")

# 添加垂直分割线
plt.axvline(np.mean(scores), color='red', linestyle='dashed', linewidth=1)

# 显示图形
plt.show()

运行以上代码,就可以得到学生考试成绩的直方图。直方图将成绩区间分成10个区间,统计了每个区间内的频数,并用柱状图表示出来。垂直的分割线表示平均分的位置。

需要注意的是,直方图只能绘制数值型的数据,不能绘制非数值型的数据。另外,使用hist()函数时,如果没有指定bins参数,默认将数据分成10个区间。