이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
범주히스토그램시제어하기
이예제에서는柱状图
을사용하여分类형데이터를효과적으로확하는방법을보여줍니다。이름-값쌍“NumDisplayBins”
,“DisplayOrder”
,“ShowOthers”
를사용하여범주히스토그램의시를변경할수있습니다。이러한옵션은데이터를구성하고플롯의잡음을줄이는데도움이됩니다。
범주히스토그램생성하기
본파일outages.csv
에는미국내의정전기록을나타내는데이터가들어있습니다。이파일에는地区
,OutageTime
,损失
,客户
,RestorationTime
,导致
와같은6개열이포함되어있습니다。
outages.csv
파일을테이블로읽어들입니다。“格式”
옵션을사용하여각열에포함되는데이터유형,즉分类형(“% C”
)、부동소수점숫자형(' % f '
또는datetime형(' % D '
을지정합니다。처음몇개의데이터행에들어있는소를참조하여변수를확합니다。
data_formats =' % C % D % f % f % D % C ';C =可读的(“outages.csv”,“格式”, data_formats);first_fet_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西部强风暴2003-06-18 02:49 00 2003-06-18 10:54攻击西部2004-06-20 14:39 231.29 NaN 2004-06-20 19:16设备故障西部2002-06-06 19:28 311.86 NaN 2002-06-07 00:51设备故障东北2003-07-16 16:23 239.93 49434 2003-07-17 01:12火灾中西部2004-09-27 11:09 286.72 66104 2004-09-27 16:37设备故障
导致
변수의범주히스토그램을플로팅합니다。출력수를지정하여直方图객체에대한핸들을반환합니다。
h =直方图(c .原因);包含(“停机原因”) ylabel (“频率”)标题(“最常见的停电原因”)
“概率”
정규화를사용하도록히스토그램의정규화를변경합니다。이는각정전원의상대빈도를시합니다。
h.Normalization =“概率”;ylabel (的相对频率)
디스플레이순서변경하기
“DisplayOrder”
옵션을사용하여Bin을가장큰값부터가장작은값순서로정렬합니다。
h.DisplayOrder =“下”;
시되는막대개수줄이기
“NumDisplayBins”
옵션을사용하여플롯에막대를3개만개만시합니다。표시되지않은데이터도여전히정규화계산에포함되므로표시된확률의합이더이상1이아닙니다。
h.NumDisplayBins = 3;
배제된데이터배제된데이터
시된확률의합이다시1이되도록“ShowOthers”
옵션을사용하여모든제외된막대를옵션을사용하여모든제외된막대를。
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);
이제남아있는3개범주만사용하여정규화되므로3개막대높이의합이1이됩니다。