如何在matlab中控制分类直方图的显示
1、创建分类直方图示例文件 outages.csv 包含表示美国电力中断情况的数据。该文件包含六个列:Region、OutageTime、Loss、Customers、RestorationTime 和 Cause。
2、以表的形式读取 outages.csv 文件。使用 'Format' 选项指定每列包含的数据类型:分类 ('%C')、浮点数('%f') 或日期时间 ('%D')。对数据的前几行进行索引以查看变量。
3、命令行键入:data_formats = '%C%D%f%f%D%C';C = readtable('outages.csv','Format',data_formats);first_few_rows = C(1:10,:)
4、绘制 Cause 变量的分类直方图。指定一个输出参墙绅褡孛数以返回直方图对象的句柄。命令行键入:h = h足毂忍珩istogram(C.Cause);xlabel('Cause of Outage')ylabel('Frequency')title('Most Common Power Outage Causes')
5、将直方图的归一化方式更改为使用 'probability' 归一化,它显示每种断电原因的相对频率。h.Normalization = 'probability';ylabel('Relative Frequency')
6、更改显示顺序使用 'DisplayOrder' 选项按从大到小的顺序对 bin 排序。h.DisplayOrder = 'descend';
7、截断显示的条形数使用 'NumDisplayBins' 选项仅在绘图中显示三个条形。由于对未显示的数据仍考虑了归一化,因此所显示的概率相加不再为 1。h.NumDisplayBins = 3;
8、将被排除的数据相加使用 'ShowOthers' 选项合并显示所有被排除的条形,以使所显示的概率相加后再次等于 1。h.ShowOthers = 'on';
9、限制只对显示数据进行归一化在 R2017a 之前的版本中,histogram 和 histcounts 函数仅使用经过 bin 处理的数据来计算归一化。这种行为意味着如果部分数据最终位于 bin 外面,则在归一化时会被忽略。但在 MATLAB® R2017a 中,该行为改为始终使用输入数据中的总元素数目来进行归一化。这种新行为更为直观,但如果您更愿意采用旧行为,则需要采取几个特殊步骤来限制仅对经过分 bin 处理的数据进行归一化。
10、您可以限制只对直方图中显示的数据实施概率归一化,而不是对所有输入数据均进行归一化。只需更新直方图对象的 Data 属性,删除祈硗樘缎其他类别即可。Categories 属性将反映直方图中显示的类别。使用 setdiff比较这两个属性值,并从 Data 中删除不在 Categories 中的所有类别。然后从数据中删除得到的所有undefined 分类元素,仅保留所显示类别中的元素。
11、命令行键入:h.ShowOthers = 'off';cats_to_remove = setdiff(categories(h.Data),h.Categories);h.Data = removecats(h.Data,cats_to_remove);h.Data = rmmissing(h.Data);