Matplotlib – 柱状图
直方图是对数字数据分布的精确表示。它是对一个连续变量的概率分布的一种估计。它是一种条形图。
要构建一个直方图,请遵循以下步骤
- 将数值的范围 划分 出来。
- 将整个数值范围划分为一系列的区间。
- 计算每个区间内有多少数值。
分区通常被指定为一个变量的连续、不重叠的区间。
matplotlib.pyplot.hist() 函数绘制了一个直方图。它计算并绘制x的直方图。
参数
下表列出了直方图的参数,这些参数包括
x | 数组或数组的序列 |
---|---|
bins | 整数或序列或’自动’,可选 |
可选参数
参数 | 解释 |
---|---|
range | 分列的下限和上限范围。 |
density | 如果是True,返回元组的第一个元素将是归一化的计数,形成一个概率密度 |
cumulative | 如果是True,那么将计算一个直方图,每个bin给出该bin的计数,加上所有bins的较小值。 |
histtype | 要绘制的直方图的类型。默认是’条形’。 |
- bar’是一个传统的条形直方图。如果给出多个数据,则条形图将并排排列。
- barstacked’是一个条形直方图,其中多个数据被堆叠在彼此的上面。
- step’生成一个线图,默认情况下是不填充的。
- stepfilled’生成一个默认为填充的线图。
下面的例子绘制了一个班级中学生获得分数的直方图。定义了四个档位,0-25,26-50,51-75和76-100。直方图显示了在这个范围内的学生人数。
from matplotlib import pyplot as plt
import numpy as np
fig,ax = plt.subplots(1,1)
a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
ax.hist(a, bins = [0,25,50,75,100])
ax.set_title("histogram of result")
ax.set_xticks([0,25,50,75,100])
ax.set_xlabel('marks')
ax.set_ylabel('no. of students')
plt.show()
该图出现如下所示—