Plotly - 直方图



直方图由卡尔·皮尔逊 (Karl Pearson) 引入,是数值数据分布的精确表示,是对连续变量概率分布的估计 (CORAL)。它看起来类似于条形图,但是,条形图关联两个变量,而直方图只关联一个变量。

直方图需要bin(或bucket),它将值的整个范围划分为一系列区间,然后计算每个区间内有多少值。bin 通常指定为变量的连续的、不重叠的区间。bin 必须相邻,并且通常大小相等。在 bin 上方绘制一个矩形,其高度与频率成比例——每个 bin 中的情况数。

直方图轨迹对象由go.Histogram()函数返回。它的自定义是通过各种参数或属性完成的。一个重要的参数是 x 或 y 设置为列表、numpy 数组Pandas 数据框对象,这些对象需要在 bin 中分布。

默认情况下,Plotly 将数据点分布在自动大小的 bin 中。但是,您可以定义自定义 bin 大小。为此,您需要将 autobins 设置为 false,指定nbins(bin 的数量)、其起始和结束值以及大小。

以下代码生成一个简单的直方图,显示班级中学生分数的分布情况 (bin 大小自动确定) −

import numpy as np
x1 = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
data = [go.Histogram(x = x1)]
fig = go.Figure(data)
iplot(fig)

输出如下所示 −

Histnorm

go.Histogram()函数接受histnorm,它指定此直方图轨迹使用的归一化类型。默认为"",每个条的跨度对应于出现次数(即位于 bin 内的数据点数)。如果赋值为"percent" / "probability",则每个条的跨度对应于相对于样本点总数的出现百分比/分数。如果它等于"density",则每个条的跨度对应于 bin 中出现的次数除以 bin 区间的大小。

还有一个histfunc参数,其默认值为count。因此,bin 上方矩形的高度对应于数据点的计数。它可以设置为 sum、avg、min 或 max。

可以将histogram()函数设置为显示连续 bin 中值的累积分布。为此,您需要将cumulative 属性设置为启用。结果如下所示 −

data=[go.Histogram(x = x1, cumulative_enabled = True)]
fig = go.Figure(data)
iplot(fig)

输出如下所示 −

Cumulative Property
广告