Plotly - 直方图

直方图由 Karl Pearson 提出,是数值数据分布的精确表示,是连续变量 (CORAL) 概率分布的估计值。它看起来类似于条形图,但条形图与两个变量相关,而直方图仅与一个变量相关。

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

直方图跟踪对象由 go.Histogram() 函数返回。它的自定义由各种参数或属性完成。一个基本参数是将 x 或 y 设置为列表、numpy 数组Pandas 数据框对象,并将其分布在箱中。

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

以下代码生成一个简单的直方图,显示班级学生成绩在箱中的分布情况(自动调整大小)−

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,它指定用于此直方图轨迹的标准化类型。默认值为"",每个条形的跨度对应于出现次数(即位于箱内的数据点数)。如果分配 "percent"/"probability",则每个条形的跨度对应于出现次数占样本点总数的百分比/分数。如果它等于"density",则每个条形的跨度对应于箱中的出现次数除以箱间隔的大小。

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

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

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

输出如下所示 −

Cumulative Property