控制分类直方图显示
这个例子展示了如何使用柱状图
有效地查看分类数据。您可以使用名称-值对“NumDisplayBins”
,“DisplayOrder”
,“ShowOthers”
更改分类直方图的显示。这些选项可以帮助您更好地组织数据并减少绘图中的噪声。
创建分类直方图
示例文件outages.csv
包含代表美国电力设施中断的数据。该文件包含六列:地区
,OutageTime
,损失
,客户
,RestorationTime
,导致
。
读了outages.csv
文件作为表。使用“格式”
选项指定每列包含的数据类型:“% C”
),浮点数(' % f '
),或datetime (' % D '
).索引到前几行数据以查看变量。
data_formats =' % C % D % f % f % D % C ';C = readtable()“outages.csv”,“格式”, data_formats);first_few_rows = C(1:10,:)
first_few_rows =10×6表区域停电时间损失客户恢复时间原因_________ ________________ ________________ ________________ _______________西南地区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-17 08:14冬季风暴西部地区2004-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强烈风暴西部西部设备故障西部设备故障东北设备故障中西部设备故障
的分类直方图导致
变量。指定输出参数以返回直方图对象的句柄。
h = histogram(C.Cause);包含(“停机原因”) ylabel (“频率”)标题(“最常见的停电原因”)
将直方图的规范化更改为使用“概率”
规格化,显示每个中断原因的相对频率。
h.Normalization =“概率”;ylabel (的相对频率)
更改显示顺序
使用“DisplayOrder”
选项将箱子从最大到最小排序。
h.DisplayOrder =“下”;
截断显示条数
使用“NumDisplayBins”
选项,在绘图中仅显示三个条形图。显示的概率不再加为1,因为未显示的数据仍然被考虑到归一化。
h.NumDisplayBins = 3;
汇总排除数据
使用“ShowOthers”
选项汇总所有排除的条形图,以便显示的概率再次加为1。
h.ShowOthers =“上”;
限制规范化显示数据
在R2017a之前柱状图
和histcounts
仅使用的功能扔进垃圾箱计算归一化的数据。这种行为意味着,如果某些数据最终在箱子之外,则出于规范化的目的而忽略它。然而,在MATLAB®R2017a中,行为改变为始终使用输入数据中的元素总数进行归一化。新的行为更直观,但是如果您更喜欢旧的行为,那么您需要采取一些特殊的步骤来将规范化限制为只针对装箱数据。
您可以将概率归一化限制在直方图中显示的数据上,而不是对所有输入数据进行归一化。只需更新数据
属性,以删除其他类别。的类别
属性反映直方图中显示的类别。使用setdiff
来比较两个属性值并从中删除任何类别数据
这不是类别
。然后删除所有的结果未定义的
从数据中分类元素,只留下显示类别中的元素。
h.ShowOthers =“关闭”;cats_to_remove = setdiff(categories(h.Data),h.Categories);h.Data = removecats(h.Data,cats_to_remove);h.Data = rmmissing(h.Data);
归一化现在只基于剩下的三个类别,所以三个柱加起来等于1。