在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个区间。
