使用matplotlib.pyplot.hist()函数绘制直方图
python
from matplotlib.pyplot as plt
data_set=np.array([2,3,3,4,4,4,4,5,5,6])
plt.hist(fish_data)
下面介绍plt.hist()函数中常用的几个重要参数(参数等号后为默认设置):
(1)x,表示一组数据,即需要制作直方图的一组数据。
(2)bins=None,表示数据桶的数目,即直方图呈现出的数据组数。
当bins为一个整数时,表示需要分组的数目,具体如何确定分组数量,可以参考:excel统计分析------正态性检验(直方图)_正态性检验 excel-CSDN博客
当bins为一个数据序列时,表示用于分组的临界值。举例说明:当bins=[1,2,3,4]时,用于分组的区间为:[1,2)、[2,3)、[3,4]。
当bins为文本时,表示作图时的分组策略,可用选项具体有:'auto', 'fd', 'doane','scott', 'stone', 'rice', 'sturges', 'sqrt'。下图为“rice”分组策略为例,其余的可以自行尝试。
(3)range=None,表示参与制作直方图的数据的上下限,None表示所有数据。如果需要设置上下限,数据需要用元组格式即(min,max)。小于下限值的数据和大于上限值的数据在作图时将被剔除。如下图,设置上下限为3和5,则数据2和数据6则被剔除。
(4)density=False, 表示直方图显示的数据是频数还是频率。默认为频数,若设置density=True,则表示为频率。下图显示的频率(注意对比纵坐标轴的变化)。
(5)weights=None, 表示对数据设置权重,要求权重的序列与数据源x的序列大小一致。下图是将数值6的权重设置为10的效果。
(6)cumulative=False, 如果设置为True表示直方图为累计统计数据。显示如下:
(7)bottom=None, 如果bottom为一个整数,表示直方图的绘图基线此数值,统一在此数值上进行累加,默认此数值为0。如果设置为序列,则各数据桶按照各自的绘制基线进行累加。
下图表示,第一组数据的基线为2,其他组数据的基线为0,效果如下:
(8)histtype='bar', 表示直方图的展现形式,有4个备选项:'bar', 'barstacked', 'step', 'stepfilled'。下图为设置"step"类型,其余类型自行测试。
(9)align='mid', 默认为‘mid’表示数据桶显示的位置以组中值为中心;若为left,表示数据桶显示的位置以组的下限值为中心;若为right,数据桶显示的位置以组的上限为中心。这里不再演示。
(10)orientation='vertical', 默认是垂直方向作图,当设置为horizontal时,为水平分布作图。
(11)rwidth=None, 设置各组的相对宽度。下图表示第一组数据为正常宽度,其他组数据为正常宽度的80%。
(12)log=False, 表示是否需要对数据进行对数转换。
(13)color=None, 设置的数据桶的颜色。