Engee 文档
Notebook

直方图

在本演示中,我们将分析在Engee中构建直方图的可能性。

直方图是将表格数据表示为条形图的一种方式。

某一指标的定量比率以矩形的形式呈现,矩形的面积成比例。 大多数情况下,为了便于感知,矩形的宽度被认为是相同的,而它们的高度决定了显示参数的比例。

现在让我们继续实现,并从连接可视化库开始,并使用使用正态分布的随机数向量的直方图的最简单可视化示例来考虑histogram函数。

In [ ]:
using Plots
In [ ]:
x = randn(10^3)
histogram(x)
Out[0]:

直方图列数默认由Friedman-Diakonis公式确定。

或者,您可以将范围传递给bins参数,以更精确地控制间隔的数量以及它们的最小值和最大值。 措辞"要从-5到+5构建20个区间,请输入。.."被使用,并且在这里我们需要将1添加到长度,因为长度考虑了间隔边界的数量。

In [ ]:
b_range = range(-5, 5, length=21)
plot(b_range, seriestype=:scatter)
Out[0]:

归一化

通常需要以某种方式对直方图进行归一化。 Normalize属性用于此。 它允许您将间隔的总面积归一化为1。 由于我们从正态分布中选择了一个样本,因此我们也可以对其进行绘图。

In [ ]:
p(x) = 1/sqrt(2pi) * exp(-x^2/2)

histogram(x, bins=b_range, normalize=:pdf, color=:gray)
plot!(p, lw=3, color=:red)
xlims!(-5, 5)
ylims!(0, 0.4)
Out[0]:

normalize可以取其他值,包括:

  1. :概率-将所有细胞高度总和为1;

  2. :密度-每个容器的面积等于数量。

加权直方图

我们将考虑的下一个显示选项是加权直方图。

In [ ]:
f_exp(x) = exp(x)/(exp(1)-1)

x = rand(10^4)
w = exp.(x)

histogram(x, bins=:scott, weights=w, normalize=:pdf, color=:gray)
plot!(f_exp, lw=3, color=:red)
plot!(legend=:topleft)
xlims!(0, 1.0)
ylims!(0, 1.6)
Out[0]:

其他选择

  1. 直方图传播图可以使用scatterhist和scatterhist构建!,其中列被点替换。
  2. 可以使用stephist和stephist构建分步直方图图!,其中轮廓替换列。
In [ ]:
p1 = histogram(x, title="Bar")
p2 = scatterhist(x, title="Scatter")
p3 = stephist(x, title="Step")
plot(p1, p2, p3, layout=(1, 3), legend=false)
Out[0]:

注意:请注意,直方图散点图的Y轴默认不会从0开始。

结论

在这个例子中,我们检查了在Engee中构建各种直方图的可能性,并确保使用此工具很方便。