Main Content

sortx

对热图行中的元素进行排序

说明

示例

sortx(h,row) 按升序(从左到右)显示 row 中的元素。此函数通过重新排列各个列,对行元素进行排序。可将 row 指定为 YData 中的一个元素或由元素组成的数组。如果您指定的第一行包含重复的值,则 sortx 根据第二行重新排列其余的列,依此类推。

示例

sortx(h,row,direction)(其中 direction'descend')按降序而不是升序(默认值)来对值排序。要对 row 中的每一行按不同的方向排序,请将 direction 指定为数组,数组的元素为 'ascend''descend'

sortx(___,'MissingPlacement',lcn) 指定将 NaN 元素放在排序顺序的开头还是末尾。将 lcn 指定为 'first''last''auto'。默认设置为 'auto',即升序时将 NaN 元素放在最后,降序时放在开头。在前面的任何输入参量组合之后使用此选项。

sortx(h) 按升序显示顶行中的元素。如果第一行包含重复的元素,则 sortx 根据第二行重新排列其余的列,依此类推。

示例

C = sortx(___) 以值矩阵的形式返回排序的颜色数据,值的显示方式与在热图中相同。

[C,x] = sortx(___) 还按照显示顺序返回排序的 x 值。

示例

全部折叠

创建一个电力中断热图,并对特定行中的值进行排序,使它们按升序从左到右显示。

首先创建一个热图。将示例文件 outages.csv 读入到表中。示例文件包含表示美国电力中断情况的数据。该表包含六列:RegionOutageTimeLossCustomersRestorationTimeCause。创建一个热图,x 轴显示不同的区域,y 轴显示不同的停电原因。在每个单元格中,显示每个区域由于特定原因经历停电的次数。

T = readtable('outages.csv');
h = heatmap(T,'Region','Cause');

'winter storm' 行中的值进行排序,使它们按升序从左到右显示。

sortx(h,'winter storm')

创建一个电力中断热图,并通过重新排列各列,按降序显示 'winter storm' 行中的值。

T = readtable('outages.csv');
h = heatmap(T,'Region','Cause');
sortx(h,'winter storm','descend')

创建一个电力中断热图,并使用多个行中的值重新排列各列。对列进行排序,使 'unknown' 行按升序显示。由于该行包含重复的值,因此使用 'earthquake' 行对其余的列进行排序。

T = readtable('outages.csv');
h = heatmap(T,'Region','Cause');
sortx(h,{'unknown','earthquake'})

创建一个电力中断热图,并对 'winter storm' 行中的值进行排序,使它们按升序显示。按照 x 轴上的显示顺序返回排序的颜色数据和列值(x 值)。

T = readtable('outages.csv');
h = heatmap(T,'Region','Cause');
[C,x] = sortx(h,'winter storm')

C = 10×5

     0    12   127    20   135
     0     0     1     0     1
     8    19    49    81    31
     2     9    85    42    18
     0     0    17     3     5
     6    31    23   135   143
     6    32     7    54   102
     0     5     4     4    11
     3    16    22    13    41
     1    18    19    37    70

x = 5x1 cell
    {'SouthWest'}
    {'MidWest'  }
    {'West'     }
    {'SouthEast'}
    {'NorthEast'}

创建一个电力中断热图,并通过重新排列各列,按升序对顶行中的值进行排序。然后还原原始顺序。

T = readtable('outages.csv');
h = heatmap(T,'Region','Cause');
sortx(h)

通过将 HeatmapChart 对象的 XDisplayData 属性设置为等于 XData 属性来还原原始列顺序。

h.XDisplayData = h.XData;

输入参数

全部折叠

要更新的热图,指定为 HeatmapChart 对象。

要排序的行,指定为字符向量、字符向量元胞数组或字符串数组,指示 HeatmapChart 对象的 YDataYDisplayData 属性中的一个或多个元素。

示例: sortx(h,'MyRowName') 按升序排列 'MyRowName' 行中的元素。

排序方向,指定为下列值之一:

  • 'ascend' - 按降序排列 row 中的所有行。

  • 'descend' - 按降序排列 row 中的所有行。

  • 数组 - 对 row 中的每一行按不同的方向排序。可将 direction 指定为包含元素 'ascend''descend' 的字符向量元胞数组或字符串数组。数组的长度必须与 row 相同。

示例: sortx(h,row,{'ascend','descend','ascend'}) 按升序排列 row 的第一行中的元素。如果第一行包含重复的值,则继续使用第二行的元素按降序排列,以此类推。

NaN 位置,指定为下列值之一:

  • 'auto' - 升序时将 NaN 元素放在最后,降序时放在开头。

  • 'first' - 将 NaN 元素放在开头。

  • 'last' - 将 NaN 元素放在最后。

示例: sortx(h,row,'MissingPlacement','last')

输出参量

全部折叠

排序的颜色数据,以矩阵形式返回。矩阵中值的显示顺序与热图中的顺序相同。

排序的颜色数据存储在 HeatmapChart 对象的 ColorDisplayData 属性中。未排序的颜色数据存储在 ColorData 属性中。

重新排列的列顺序,以字符向量元胞数组形式返回。

排序的列顺序存储在 HeatmapChart 对象的 XDisplayData 属性中。未排序的列顺序存储在 XData 属性中。

算法

sortx 函数可以设置和查询以下 HeatmapChart 对象属性:

  • XDisplayData - 用于存储 x 轴数据的属性。

  • ColorDisplayData - 用于存储颜色显示数据的属性。

sortx 函数还可以重置 XLimits 属性。

版本历史记录

在 R2017b 中推出

另请参阅

函数

属性