文档

控制分类直方图显示

这个例子展示了如何使用柱状图有效地查看分类数据。您可以使用名称-值对“NumDisplayBins”“DisplayOrder”,“ShowOthers”更改分类直方图的显示。这些选项可以帮助您更好地组织数据并减少图中的噪声。

创建分类直方图

示例文件outages.csv包含代表美国电力中断的数据。该文件包含六列:地区OutageTime损失客户RestorationTime,导致

读了outages.csv文件作为表。使用“格式”选项,用于指定每列包含的数据类型:“% C”),浮点数字(' % f '),或datetime (' % D ').在前几行数据中建立索引以查看变量。

data_formats =' % C % D % f % f % D % C ';C =可读(“outages.csv”“格式”, data_formats);first_few_rows = C(1:10,:)
first_few_rows =10×6表地区OutageTime损失客户恢复时间原因_________ ________________ ________________ ________________ _______________西南2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50冬季风暴东南2003-01-23 00:49 530.14 2.1204e+05 NaT冬季风暴东南2003-02-07 21:15 289.4 1.4294e+05 2003-02-07 21:15 289.4 1.4294e+05 2003-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10设备故障中西部2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23强风暴西部2003-06-18 02:49 00 2003-06-18 10:54 attack West 2004-06-20 14:39 231.29 NaN 2004-06-20 19:16 equipment fault West 2002-06-06 19:28 311.86 NaN 2002-06-07 00:51 equipment fault东北2003-07-16 16:23 239.93 49434 2003-07-17 01:12 fire MidWest 2004-09-27 11:09 286.72 66104 2004-09-27 16:37 equipment fault

的分类直方图导致变量。指定输出参数以返回直方图对象的句柄。

h =直方图(c .原因);包含(“停机原因”) ylabel (“频率”)标题(“最常见的停电原因”

更改直方图的规范化以使用“概率”规范化,它显示每个中断原因的相对频率。

h.Normalization =“概率”;ylabel (的相对频率

更改显示顺序

使用“DisplayOrder”选项排序的箱子从最大到最小。

h.DisplayOrder =“下”

Truncate Number of Bars displays

使用“NumDisplayBins”选项,在图中只显示三个条。显示的概率不再加为1,因为未显示的数据仍然被考虑到归一化。

h.NumDisplayBins = 3;

汇总排除数据

使用“ShowOthers”选项汇总所有排除的柱状图,使显示的概率再次加为1。

h.ShowOthers =“上”

限制显示数据的规范化

在R2017a之前,柱状图histcounts仅使用的函数扔进垃圾箱计算归一化的数据。这种行为意味着,如果一些数据最终落在了箱子之外,为了标准化的目的,它将被忽略。然而,在MATLAB®R2017a中,行为更改为始终使用输入数据中的元素总数归一化。新的行为更加直观,但是如果您更喜欢旧的行为,那么您需要采取一些特殊的步骤,将规范化限制为只对已打包的数据进行规范化。

您可以将概率归一化限制为直方图中显示的数据,而不是对所有输入数据进行归一化。只需更新数据属性,以删除其他类别。的类别属性反映柱状图中显示的类别。使用setdiff来比较两个属性值并从数据这不在类别.然后删除所有结果未定义的从数据中分类元素,只在显示的类别中留下元素。

h.ShowOthers =“关闭”;cats_to_remove = setdiff(类别(h.Data),h.Categories);h.Data = removecats(h.Data,cats_to_remove);h.Data = rmmissing(h.Data);

规范化现在仅基于剩下的三个类别,因此三个柱形加为1。

另请参阅

||