文档

histogram2

二元直方图

描述

二元直方图是一种用于数值数据的条形图,它将数据分组到2-D容器中。在创建一个Histogram2对象时,您可以通过更改直方图的属性值来修改其方面。这对于快速修改箱子的属性或更改显示特别有用。

创建

描述

例子

histogram2 (X, Y的二元直方图XY.的histogram2函数使用自动装箱算法,该算法返回具有统一区域的装箱,选择用于覆盖中的元素范围XY并揭示分布的基本形状。histogram2将容器显示为3-D矩形条,以便每个条的高度表示容器中元素的数量。

例子

histogram2 (X, Ynbins指定在直方图的每个维度中使用的箱的数量。

例子

histogram2 (X, YXedgesYedges使用向量指定每个维度中箱子的边XedgesYedges

histogram2(“XBinEdges”,Xedges“YBinEdges”,Yedges“BinCounts”,计数手动指定bin计数。histogram2绘制指定的分区计数,不执行任何数据分区。

例子

histogram2 (___名称,值使用一个或多个指定其他选项名称,值使用前面任何一种语法对参数。例如,您可以指定“BinWidth”和一个两元向量来调整每个维度中箱子的宽度,或者“归一化”有一个有效的选项(“数”“概率”“countdensity”“pdf”“cumcount”,或“提供”)来使用不同类型的归一化。有关属性列表,请参见Histogram2属性

histogram2 (斧头___所指定的轴斧头而不是进入当前轴(gca).的选项斧头可以放在前面语法中任何输入参数组合的前面。

例子

h= histogram2 (___返回一个Histogram2对象。使用它来检查和调整二元直方图的属性。有关属性列表,请参见Histogram2属性

输入参数

全部展开

要在容器中分配的数据,指定为向量、矩阵或多维数组的单独参数。XY必须是一样的尺寸。如果XY不是向量吗histogram2把它们当作单列向量,X (:)Y (:),并绘制单个直方图。

中对应的元素XY指定xy二维数据点的坐标,[X (k), Y (k)].的数据类型XY可以不同,但是histogram2将这些输入连接成单个输入N——- - - - - -2主要数据类型的矩阵。

histogram2忽略所有值。同样的,histogram2忽略了值,除非bin边显式指定作为bin边。虽然,值通常不绘制,它们仍然包含在包括数据元素总数的归一化计算中,例如“概率”

请注意

如果XY包含类型为int64uint64大于flintmax,则建议显式指定直方图bin边。histogram2使用双精度自动对输入数据进行装箱,这对于大于的数字缺乏整数精度flintmax

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

每个维度中的箱数,指定为正标量整数或正整数的两元素向量。如果您没有指定nbins,然后histogram2中的值自动计算要使用多少个箱子XY

  • 如果nbins是标量吗histogram2在每个维度中使用相同数量的箱子。

  • 如果nbins是向量吗nbins (1)属性中的垃圾箱数量x尺寸和nbins (2)属性中的垃圾箱数量y维度。

例子:histogram2 (X, Y, 20)每个维度使用20个箱子。

例子:histogram2 (X, Y, 20 [10])使用10个箱子x-dimension和20个箱子在y维度。

料仓向内倾斜x-dimension,指定为一个向量。Xedges (1)第一个箱子的第一个边是x维度,Xedges(结束)是最后一个箱子的外缘。

的值[X (k), Y (k)](i, j)Th bin ifXedges(我)X (k)<Xedges (i + 1)Yedges (j)Y (k)<Yedges (j + 1).每个维度中的最后一个箱子还包括最后(外部)边缘。例如,[X (k), Y (k)]掉进最后一行的bin如果Xedges (end-1)X (k)Xedges(结束)Yedges(我)Y (k)<Yedges (i + 1)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

料仓向内倾斜y-dimension,指定为一个向量。Yedges (1)第一个箱子的第一个边是y维度,Yedges(结束)是最后一个箱子的外缘。

的值[X (k), Y (k)](i, j)Th bin ifXedges(我)X (k)<Xedges (i + 1)Yedges (j)Y (k)<Yedges (j + 1).每个维度中的最后一个箱子还包括最后(外部)边缘。例如,[X (k), Y (k)]掉进最后一行的bin如果Xedges (end-1)X (k)Xedges(结束)Yedges(我)Y (k)<Yedges (i + 1)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

Bin计数,指定为矩阵。使用此输入将bin计数传递给histogram2当bin计数计算单独执行时,您不希望histogram2进行任何数据装箱。

计数一定是一个大小的矩阵[长度(XBinEdges) 1 (YBinEdges) 1]因此它为每个bin指定了一个bin计数。

例子:直方图2('XBinEdges',-1:1,'YBinEdges',-2:2,'BinCounts',[1 2 3 4;5 6 7 8])

坐标轴对象。如果未指定轴,则histogram2函数使用当前轴(gca).

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:histogram2 (X, Y, BinWidth, 10 [5])

这里列出的属性只是一个子集。有关完整列表,请参见Histogram2属性

分箱算法,指定为本表中的值之一。

价值 描述
“汽车”

默认的“汽车”算法选择一个仓宽来覆盖数据范围,并揭示底层分布的形状。

“斯科特。”

如果数据接近联合正态分布,斯科特规则是最优的。这个规则也适用于大多数其他发行版。它使用的容器大小为[3.5 *性病(X(:)) *元素个数(X) ^(1/4), 3.5 *性病(Y(:)) *元素个数(Y) ^ (1/4)

“fd”

Freedman-Diaconis规则对数据中的异常值不太敏感,可能更适合于具有重尾分布的数据。它使用的容器大小为[2 *差(X(:)) *元素个数(X) ^(1/4), 2 *差(Y(:)) *元素个数(Y) ^ (1/4),在那里位差是四分位范围。

“整数”

整数规则对于整数数据非常有用,因为它以整数对为中心创建了箱子。它为每个维度使用1的bin宽度,并将bin边放在整数之间的中间。

为了避免意外地创建过多的容器,可以使用此规则创建1024个容器的限制(210).如果任一维度的数据范围大于1024,则整数规则将使用更宽的bins。

histogram2并不总是使用这些精确的公式来选择箱子的数量。有时,箱子的数量稍作调整,以便箱子的边缘落在“漂亮”的数字上。

请注意

如果你设置NumBinsXBinEdgesYBinEdgesBinWidth,或BinLimits属性,则BinMethod属性设置为“手动”

例子:histogram2 (X, Y,“BinMethod”、“整数”)创建以整数对为中心的二元直方图。

每个维度中bin的宽度,指定为两个元素的正整数向量,[xWidth yWidth]

如果你指定BinWidth,然后histogram2最多可使用1024个箱子(210)。如果指定的容器宽度需要更多的容器,则histogram2使用与最大箱数对应的较大箱宽。

例子:histogram2 (X, Y, BinWidth, 10 [5])使用大小相同的垃圾箱5x-尺寸和尺寸10y维度。

直方图显示样式,指定为任意一种“bar3”“瓦”.指定“瓦”将直方图显示为矩形磁贴数组,其中颜色表示bin值。

的默认值“bar3”使用3d条显示直方图。

例子:histogram2 (X, Y,“DisplayStyle”、“瓷砖”)将直方图绘制为方框的矩形数组。

直方图条边的透明度,指定为之间的标量值01包容性。值为1意思是完全不透明0意思是完全透明(不可见)。

例子:histogram2 (X, Y, EdgeAlpha, 0.5)创建带有半透明条边的二元直方图。

直方图边缘颜色,指定为以下值之一:

  • “没有”—没有绘制边缘。

  • “汽车”-每个边的颜色是自动选择的。

  • RGB三元组、十六进制颜色代码或颜色名称-边使用指定的颜色。

    RGB三组和十六进制颜色代码对于指定自定义颜色很有用。

    • RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内[0, 1];例如,[0.4 0.6 0.7]

    • 十六进制颜色码是字符向量或以散列符号()后面跟着三个或六个十六进制数字,取值范围为0F.这些值不区分大小写。因此,颜色代码“# FF8800”“# ff8800”“# F80”,“# f80”是等价的。

    或者,您可以通过名称指定一些常用颜色。该表列出了已命名的颜色选项、等效的RGB三元组和十六进制颜色代码。

    颜色名称 短名称 RGB值 十六进制颜色代码 外观
    “红色” “r” [10 0 0] “# FF0000”

    “绿色” ‘g’ [0 10 0] “# 00 ff00”

    “蓝” “b” [0 0 1] “# 0000 ff”

    “青色” “c” [0 1 1] “# 00飞行符”

    “红色” “米” [10 0 1] “#就”

    “黄色” “y” [11 10 0] “# FFFF00”

    “黑” “k” [0 0 0] # 000000的

    “白色” ' w ' [1 1 1] “# FFFFFF”

    这里是RGB三组和十六进制的颜色代码的默认颜色MATLAB®在许多类型的图中使用。

    RGB值 十六进制颜色代码 外观
    [0 0.4470 0.7410] “# 0072 bd”

    [0.8500 0.3250 0.0980] “# D95319”

    [0.9290 0.6940 0.1250] “# EDB120”

    [0.4940 0.1840 0.5560] “# 7 e2f8e”

    [0.4660 0.6740 0.1880] “# 77 ac30”

    [0.3010 0.7450 0.9330] “# 4 dbeee”

    [0.6350 0.0780 0.1840] “# A2142F”

例子:histogram2 (X, Y,‘EdgeColor’,‘r’)创建带有红色条边的3-D直方图。

直方图条的透明度,指定为之间的标量值01包容性。histogram2对直方图的所有柱状图使用相同的透明度。值为1意思是完全不透明0意思是完全透明(不可见)。

例子:histogram2 (X, Y, FaceAlpha, 0.5)创建带有半透明条的二元直方图。

直方图条颜色,指定为以下值之一:

  • “没有”—条形图未填满。

  • “平”—条形图颜色随高度变化而变化。不同高度的条有不同的颜色。颜色是从图形或轴色度图中选择的。

  • “汽车”-条的颜色是自动选择的(默认)。

  • RGB三元组、十六进制颜色代码或颜色名称—条形图用指定的颜色填充。

    RGB三组和十六进制颜色代码对于指定自定义颜色很有用。

    • RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内[0, 1];例如,[0.4 0.6 0.7]

    • 十六进制颜色码是字符向量或以散列符号()后面跟着三个或六个十六进制数字,取值范围为0F.这些值不区分大小写。因此,颜色代码“# FF8800”“# ff8800”“# F80”,“# f80”是等价的。

    或者,您可以通过名称指定一些常用颜色。该表列出了已命名的颜色选项、等效的RGB三元组和十六进制颜色代码。

    颜色名称 短名称 RGB值 十六进制颜色代码 外观
    “红色” “r” [10 0 0] “# FF0000”

    “绿色” ‘g’ [0 10 0] “# 00 ff00”

    “蓝” “b” [0 0 1] “# 0000 ff”

    “青色” “c” [0 1 1] “# 00飞行符”

    “红色” “米” [10 0 1] “#就”

    “黄色” “y” [11 10 0] “# FFFF00”

    “黑” “k” [0 0 0] # 000000的

    “白色” ' w ' [1 1 1] “# FFFFFF”

    下面是MATLAB在许多类型的图中使用的默认颜色的RGB三组和十六进制颜色代码。

    RGB值 十六进制颜色代码 外观
    [0 0.4470 0.7410] “# 0072 bd”

    [0.8500 0.3250 0.0980] “# D95319”

    [0.9290 0.6940 0.1250] “# EDB120”

    [0.4940 0.1840 0.5560] “# 7 e2f8e”

    [0.4660 0.6740 0.1880] “# 77 ac30”

    [0.3010 0.7450 0.9330] “# 4 dbeee”

    [0.6350 0.0780 0.1840] “# A2142F”

如果你指定DisplayStyle作为“楼梯”,然后histogram2不使用FaceColor财产。

例子:histogram2 (X, Y,‘FaceColor’,‘g’)创建带有绿色条的三维直方图。

直方图条上的照明效果,指定为本表中的值之一。

价值 描述
“点燃”

柱状图条显示一个伪照明效果,其中柱状条的两侧使用相对于顶部的更深的颜色。这些杆不受轴上其他光源的影响。

时,此值为默认值DisplayStyle“bar3”

“平”

柱状图条不会自动点亮。在其他发光物体存在的情况下,整个杆面上的照明效果是均匀的。

“没有”

直方图条不会自动点亮,灯光也不会影响直方图条。

FaceLighting只能是“没有”DisplayStyle“瓦”

例子:histogram2 (X, Y,‘FaceLighting’,‘没有’)关闭直方图条的照明。

线条样式,指定为本表中列出的选项之一。

线条样式 描述 产生的线
“- - -” 实线

“——” 虚线

“:” 虚线

“-”。 Dash-dotted线

“没有” 没有线 没有线

条形轮廓的宽度,指定为以点为单位的正值。1分等于1/72英寸。

例子:1.5

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

归一化类型,指定为本表中的值之一。对于每个箱子

  • v 是bin值。

  • c 是容器中元素的数量。

  • 一个 w x w y 是每个箱子的面积,计算使用xy本宽度。

  • N 输入数据中的元素数。如果数据包含。则此值可以大于已打包数据值,或者某些数据位于bin限制之外。

价值 本值 笔记
“数”(默认)

v c

  • 计数或观察频率。

  • bin值的和小于或等于元素个数(X)元素个数(y).总和小于元素个数(X)元素个数(y)只有当一些输入数据不包含在箱子中时才会这样做。

“countdensity”

v c 一个

  • 计数或频率按面积的bin。

  • 每个条形图的体积(高度*面积)是箱子里的观测数据的数量。条形体积之和小于或等于元素个数(X)元素个数(y)

“cumcount”

v j 1 c j

  • 累计计数。每个bin值是在每个bin和之前的所有bin中的累积观测数xy维度。

  • 最后一根杆的高度小于或等于元素个数(X)元素个数(Y)

“概率”

v c N

  • 相对概率。

  • 条形高度之和小于或等于1

“pdf”

v c N 一个

  • 概率密度函数估计。

  • 每个条的体积是观测值的相对数量。条形体积之和小于或等于1

“提供”

v j 1 c j N

  • 累积密度函数估计。

  • 每个条形图的高度等于每个数据仓和之前所有数据仓中观测值的累积相对数xy维度。最后一根杆的高度小于或等于1

例子:histogram2 (X, Y,“正常化”,“pdf”)的概率密度函数的估计XY

切换空箱子的显示,指定为任意一个“关闭”“上”.默认值为“关闭”

例子:histogram2 (X, Y,“ShowEmptyBins”,“上”)打开空箱子的显示。

Bin限制x-dimension,指定为两个元素的向量,[xbmin, xbmax].对象中的第一个和最后一个bin边x维度。

histogram2只绘制包含在bin限制内的数据,Data(Data(:,1)>=xbmin & Data(:,1)<=xbmax)

中bin限制的选择模式x-dimension,指定为“汽车”“手动”.默认值为“汽车”,使仓限自动调整到沿x轴的数据。

如果您显式指定了其中任何一个XBinLimitsXBinEdges,然后XBinLimitsMode自动设置为“手动”.在这种情况下,请指定XBinLimitsMode作为“汽车”要重新缩放数据的bin限制。

Bin限制y-dimension,指定为两个元素的向量,[ybmin, ybmax].对象中的第一个和最后一个bin边y维度。

histogram2只绘制包含在bin限制内的数据,数据(数据(:,2)>=ybmin &数据(:,2)<=ybmax)

中bin限制的选择模式y-dimension,指定为“汽车”“手动”.默认值为“汽车”,使仓限自动调整到沿y轴的数据。

如果您显式指定了其中任何一个YBinLimitsYBinEdges,然后YBinLimitsMode自动设置为“手动”.在这种情况下,请指定YBinLimitsMode作为“汽车”要重新缩放数据的bin限制。

输出参数

全部展开

二元直方图,作为对象返回。有关更多信息,请参见Histogram2属性

属性

Histogram2属性 外观和行为直方图

对象的功能

morebins 增加直方图箱的数量
fewerbins 减少直方图箱的数量

例子

全部折叠

生成10,000对随机数并创建二元直方图。的histogram2函数自动选择适当数量的容器来覆盖中的值范围xy并显示底层分布的形状。

X = randn(10000,1);Y = randn(10000,1);H = histogram2(x,y)
h =直方图2 with properties:数据:[10000x2 double]值:[25x28 double] NumBins: [25 28] XBinEdges: [1x26 double] YBinEdges: [1x29 double] BinWidth:[0.3000 0.3000]归一化:'count' FaceColor: 'auto' EdgeColor:[0.1500 0.1500 0.1500]显示所有属性
包含(“x”) ylabel (“y”

属性指定输出参数时histogram2函数,它返回一个直方图2对象。您可以使用此对象检查直方图的属性,例如箱子的数量或箱子的宽度。

找出每个维度中直方图箱的数量。

nXnY = h.NumBins
nXnY =1×225 28

绘制1000对随机数字的二元直方图,这些数字被分类到25个等间距的箱子中,每个维度使用5个箱子。

X = randn(1000,1);Y = randn(1000,1);Nbins = 5;H = histogram2(x,y,nbins)

h =直方图2 with properties:数据:[1000x2 double]值:[5x5 double] NumBins: [5 5] XBinEdges: [-4 -2.4000 -0.8000 0.8000 2.4000 4] YBinEdges: [-4 -2.4000 -0.8000 0.8000 2.4000 4] BinWidth:[1.6000 1.6000]归一化:'count' FaceColor: 'auto' EdgeColor:[0.1500 0.1500 0.1500]显示所有属性

查找结果的bin计数。

counts = h.Values
数=5×50 2 3 10 2 40 124 47 41 119 341 109 10 1 32 117 33 10 4 8 10

生成1000对随机数,并创建一个二元直方图。

X = randn(1000,1);Y = randn(1000,1);H = histogram2(x,y)

h =直方图2 with properties:数据:[1000x2 double]值:[15x15 double] NumBins: [15 15] XBinEdges: [1x16 double] YBinEdges: [1x16 double] BinWidth:[0.5000 0.5000]归一化:'count' FaceColor: 'auto' EdgeColor:[0.1500 0.1500 0.1500]显示所有属性

使用morebins函数来粗略地调整x维度。

Nbins =摩尔宾斯(h,“x”);Nbins =摩尔宾斯(h,“x”

nbins =1×219日15

使用fewerbins属性中的垃圾箱数量y维度。

Nbins =少箱(h,“y”);Nbins =少箱(h,“y”

nbins =1×219日11

通过显式设置箱数来调整细粒度级别的箱数。

h.NumBins = [20 10];

创建一个二元直方图,使用1000个正态分布随机数,每个维度有12个箱。指定FaceColor作为“平”按高度为直方图条着色。

H = histogram2(randn(1000,1),randn(1000,1),[12 12],“FaceColor”“平”);colorbar

生成随机数据并绘制二元平铺直方图。通过指定显示空箱子ShowEmptyBins作为“上”

X = 2*randn(1000,1)+2;Y = 5*randn(1000,1)+3;H =直方图2(x,y,“DisplayStyle”“瓦”“ShowEmptyBins”“上”);

生成1000对随机数,并创建一个二元直方图。使用两个向量指定箱子边,在直方图的边界上有无限宽的箱子,以捕获所有不满足的异常值 | x | < 2

X = randn(1000,1);Y = randn(1000,1);Xedges = [-Inf -2:0.4:2 Inf];Yedges = [-Inf -2:0.4:2 Inf];h = histogram2(x,y,Xedges,Yedges)

h =直方图2 with properties:数据:[1000x2 double]值:[12x12 double] NumBins: [12 12] XBinEdges: [1x13 double] YBinEdges: [1x13 double] BinWidth: 'nonuniform'归一化:'count' FaceColor: 'auto' EdgeColor:[0.1500 0.1500 0.1500]显示所有属性

当箱子边是无穷大时,histogram2将每个离群数据仓(沿直方图边界)显示为相邻数据仓宽度的两倍。

指定归一化财产“countdensity”删除包含异常值的箱子。现在,体积表示该区间内观测的频率。

h.Normalization =“countdensity”

方法生成1,000对随机数并创建二元直方图“概率”规范化。

X = randn(1000,1);Y = randn(1000,1);H =直方图2(x,y,“归一化”“概率”

h =直方图2 with properties:数据:[1000x2 double]值:[15x15 double] NumBins: [15 15] XBinEdges: [1x16 double] YBinEdges: [1x16 double] BinWidth:[0.5000 0.5000]归一化:'probability' FaceColor: 'auto' EdgeColor:[0.1500 0.1500 0.1500]显示所有属性

计算杆高的总和。通过这种归一化,每个条形图的高度等于在该bin区间内选择观测值的概率,并且所有条形图的高度之和为1。

S = sum(h.Values(:))
S = 1.0000

生成1000对随机数,并创建一个二元直方图。返回直方图对象以调整直方图的属性,而无需重新创建整个图形。

X = randn(1000,1);Y = randn(1000,1);H = histogram2(x,y)

h =直方图2 with properties:数据:[1000x2 double]值:[15x15 double] NumBins: [15 15] XBinEdges: [1x16 double] YBinEdges: [1x16 double] BinWidth:[0.5000 0.5000]归一化:'count' FaceColor: 'auto' EdgeColor:[0.1500 0.1500 0.1500]显示所有属性

按高度为直方图条着色。

h.FaceColor =“平”

在每个方向上改变箱子的数量。

h.NumBins = [10 25];

将直方图显示为平铺图。

h.DisplayStyle =“瓦”;视图(2)

使用savefig函数保存直方图2。

Y = histogram2(randn(100,1),randn(100,1));savefig (“histogram2.fig”);清晰的所有关闭所有

使用openfig将直方图加载回MATLAB中。openfig还返回图形的句柄,h

H = openfig(“histogram2.fig”);

使用findobj函数从图形句柄中定位正确的对象句柄。这允许您继续操作用于生成图形的原始直方图对象。

Y = findobj(h,“类型”“histogram2”
y = Histogram2 with properties:数据:[100x2 double]值:[7x6 double] NumBins: [7 6] XBinEdges: [-3 -2 -1 0 1 2 3 4] YBinEdges: [-3 -2 -1 0 1 2 3] BinWidth:[1 1 1]归一化:'count' FaceColor: 'auto' EdgeColor:[0.1500 0.1500 0.1500]显示所有属性

提示

  • 创建的直方图histogram2在图形编辑模式下有一个上下文菜单,可以在图形窗口中进行交互操作。例如,您可以使用上下文菜单以交互方式更改箱子的数量、对齐多个直方图或更改显示顺序。

扩展功能

在R2015b中引入