matplotlib.pyplot.hist参数详解

参考官方文档:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.hist.html#matplotlib.pyplot.hist

matplot.pyplot.hist(x, bins=None, range=None, density=None, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, normed=None, *, data=None, **kwargs)

返回元组(frequency, bins, patches)。

注:本文将bin译为柱子以帮助理解。

参数:

x:数组或(允许长度不等的)数组序列;

bins:整数值或序列。如果bins为整数值,则bins为柱子个数,根据数据的取值范围和柱子个数bins计算每个柱子的范围值,柱宽=(x.max()-x.min())/bins。例:数据取值为[1,2,3,4,5,6],bins=6,柱宽=0.8333...,则每个柱子的范围分别为:[1,1.83), [1.83,2.66)...,[5.17,6],见下图:

如果bins取值为序列,则该序列给出每个柱子的范围值(即边缘)。除最后一个柱子外,其他柱子的取值范围均为半开(左闭右开)。接上例,数据共n=6个取值,若bins=range(1,n+2)即bins的取值为[1,2,3,4,5,6,7],注意range用法。则每个柱子的范围为:[1,2),[2,3),...,[5,6),[6,7]。注意:这里可以看出为什么bins的取值需要包含7,因为最后一个柱子的取值范围是全闭的,如果取值只到6,则最后一个柱子的范围为[5,6],取值为5和6的数据将被合并计算。例子见下图:

range:元组(tuple)或None。剔除较大和较小的离群值,给出全局范围。如果为None,则默认为(x.min(), x.max())。如果bins取值为序列,则range无效,python会基于bins的取值画图。

density:布尔值。如果为true,则返回的元组的第一个参数frequency将为频率而非默认的频数。可自行验证sum(frequency)。

weights:与x形状相同的权重数组。将x中的每个元素乘以对应权重值再计数。如果normed或density取值为True,则会对权重进行归一化处理。这个参数可用于绘制已合并的数据的直方图。

cumulative:布尔值。如果为True,则计算累计频数。如果normed或density取值为True,则计算累计频率。

bottom:数组,标量值或None。每个柱子底部相对于y=0的位置。如果是标量值,则每个柱子相对于y=0向上/向下的偏移量相同。如果是数组,则根据数组元素取值移动对应的柱子。

histtype:{'bar', 'barstacked', 'step', 'stepfilled'}。'bar'是传统的条形直方图;'barstacked'是堆叠的条形直方图;'step'是未填充的条形直方图,只有外边框;'stepfilled'是有填充的直方图。当histtype取值为'step'或'stepfilled',rwidth设置失效,即不能指定柱子之间的间隔,默认连接在一起。

align:{'left', 'mid', 'right'}。'left':柱子的中心位于bins的左边缘;'mid':柱子位于bins左右边缘之间;'right':柱子的中心位于bins的右边缘。可在上面两张图中求证。

orientation:{'horizontal', 'vertical'}:如果取值为horizontal,则条形图将以y轴为基线,水平排列。

rwidth:标量值或None。柱子的宽度占bins宽的比例。例:当bins=range(1,8)时,每个柱子默认宽为1,若设置rwidth=0.8,则柱子的宽度将为0.8,柱子之间的距离为0.2。

log:布尔值。如果取值为True,则坐标轴的刻度为对数刻度。如果log为True且x是一维数组,则计数为0的取值将被剔除,仅返回非空的(frequency, bins, patches)。

color:具体颜色,数组(元素为颜色)或None。

label:字符串(序列)或None。有多个数据集时,用label参数做标注区分。

stacked:布尔值。如果取值为True,则输出的图为多个数据集堆叠累计的结果,见下图;如果取值为False且histtype='bar'或'step',则多个数据集的柱子并排排列,见下图。

normed:布尔值。官方不推荐使用,建议改用density参数。

返回的参数:

frequency(官方文档用n表示):数组或数组列表。柱子的高,即频数或频率值,数据类型为float。

bins:每个柱子的左右边缘值(即区间范围),例子见上文输入参数bins。

patches:列表或列表的列表。取值为每个柱子包含的数据。

 

### 回答1: Matplotlib.pyplot.hist函数用于绘制直方图,它可以接受一维数组作为输入,然后将数据分成若干个区间,统计每个区间内数据的数量,并将结果绘制成直方图。该函数有多个参数可以调整直方图的样式和布局,比如bins参数可以指定区间的数量,range参数可以指定数据的范围等。 ### 回答2: MatplotlibPython的一个绘图库,而pyplotMatplotlib的一个子模块。Matplotlib.pyplot.hist函数用于绘制直方图。 直方图是一种统计图表,用来表示数据的分布情况。直方图将数据划分为若干个等宽的区间,通过统计落入每个区间的数据个数来展示数据的分布情况。 使用Matplotlib.pyplot.hist函数绘制直方图时,需要输入一个数据集作为参数。函数将根据数据集中的值来统计落入每个区间的数据个数,并根据统计结果绘制直方图。 该函数的常见参数包括: - bins:用于指定划分区间的个数或区间的边界值。默认为10,意味着将数据划分为10个等宽的区间。 - range:用于指定数据的范围,超出该范围的数据将被忽略。 - density:用于控制是否将直方图的纵轴单位设置为概率密度。默认为False,即纵轴单位为数据个数。 - color:用于指定直方图的颜色。 - alpha:用于指定直方图的透明度。 - label:用于给直方图添加标签。 除了常见参数外,还可以通过调整其他参数来进一步调整直方图的样式,如设置边界宽度、设置直方图的类型等。 总之,使用Matplotlib.pyplot.hist函数可以方便地绘制直方图,帮助我们更直观地了解数据的分布情况。 ### 回答3: Matplotlib.pyplot.hist函数用于绘制直方图。直方图是一种用来展示数据分布情况的统计图表。该函数可以将数据划分为一系列的间隔,并统计落在每个间隔内的数据个数,然后以柱形图的形式显示出来。 使用该函数,首先需要传入要绘制直方图的数据,可以是一个数组或者一列数据。函数会自动根据数据的最小值和最大值确定需要划分的间隔数。也可以通过设置bins参数来指定间隔数,或者通过设置range参数来指定数据的范围。 在绘制直方图时,可以设置一些可选参数来调整图表的样式。例如,可以通过设置color参数来改变柱形的颜色;通过设置alpha参数来调整柱形的透明度;通过设置edgecolor参数来改变柱形之间的边界颜色。 此外,还可以通过设置normed参数为True来将每个柱形的高度转化为概率密度。通过设置cumulative参数为True,可以绘制累积直方图。 绘制直方图后,还可以添加一些额外的元素,例如标题、横轴和纵轴标签、图例等。 总的来说,Matplotlib.pyplot.hist函数是一个简单而强大的绘制直方图的工具,可以方便地展示数据的分布情况,进而提供数据分析的依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值