Main Content

sorty

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

说明

示例

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

示例

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

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

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

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

示例

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

示例

全部折叠

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

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

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

'NorthEast' 列中的值进行排序,使它们从上到下按升序显示。

sorty(h,'NorthEast')

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

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

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

T = readtable('outages.csv');
h = heatmap(T,'Region','Cause');
sorty(h,{'SouthWest','NorthEast'})

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

T = readtable('outages.csv');
h = heatmap(T,'Region','Cause');
[C,y] = sorty(h,'NorthEast')

C = 10×5

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

y = 10x1 cell
    {'earthquake'      }
    {'fire'            }
    {'unknown'         }
    {'equipment fault' }
    {'energy emergency'}
    {'wind'            }
    {'winter storm'    }
    {'thunder storm'   }
    {'attack'          }
    {'severe storm'    }

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

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

通过将 HeatmapChart 对象的 YDisplayData 属性设置为等于 YData 属性来还原原始行顺序。

h.YDisplayData = h.YData;

输入参数

全部折叠

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

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

示例: sorty(h,'MyColumnName') 按升序排列 'MyColumnName' 列中的元素。

排序方向,指定为 'ascend''descend'、字符向量元胞数组或字符串数组。

  • 'ascend' - 按升序对 column 中列出的所有列进行排序。

  • 'descend' - 按降序对 column 中列出的所有列进行排序。

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

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

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

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

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

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

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

输出参量

全部折叠

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

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

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

排序的行顺序存储在 HeatmapChart 对象的 YDisplayData 属性中。未排序的行顺序存储在 YData 属性中。

算法

sorty 函数可以设置以下 HeatmapChart 对象属性:

  • YDisplayData - 用于存储 y 轴数据的属性。

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

sorty 函数还可以重置 YLimits 属性。

版本历史记录

在 R2017b 中推出

另请参阅

函数

属性