# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

# sorty

Sort elements in heatmap column

## Syntax

``sorty(h,column)``
``sorty(h,column,direction)``
``sorty(___,'MissingPlacement',lcn)``
``sorty(h)``
``C = sorty(___)``
``[C,y] = sorty(___)``

## Description

example

````sorty(h,column)` displays the elements in `column` in ascending order (from top to bottom). This function sorts the column elements by rearranging the rows. Specify `column` as one element or as an array of elements from `XData`. If the first column that you specify has repeating values, then `sorty` rearranges the remaining rows according to the second column, and so on. ```

example

````sorty(h,column,direction)`, where `direction` is `'descend'`, sorts the values in descending order instead of ascending order (default). To sort in a unique direction for each column in `column`, specify `direction` as an array whose elements are `'ascend'` or `'descend'`.```
````sorty(___,'MissingPlacement',lcn)` specifies whether to put `NaN` elements first or last in the sort order. Specify `lcn` as `'first'`, `'last'`, or `'auto'`. The default setting is `'auto'`, which lists `NaN` elements last for ascending order and first for descending order. Use this option after any of the previous input argument combinations.```
````sorty(h)` displays the elements in the first column in ascending order. If the first column has repeating elements, then `sorty` rearranges the remaining rows according to the second column, and so on. ```
````C = sorty(___)` returns the sorted color data, which is a matrix of values as they appear in the heatmap chart.```

example

````[C,y] = sorty(___)` also returns the sorted y values in the order they are displayed.```

## Examples

collapse all

Create a heatmap of utility outages and sort the values in a particular column so that they appear in ascending order, from top to bottom.

First, create a heatmap. Read the sample file `outages.csv` into a table. The sample file contains data representing electric utility outages in the United States. The table contains six columns: `Region`, `OutageTime`, `Loss`, `Customers`, `RestorationTime`, and `Cause`. Create a heatmap that shows the different regions along the x-axis and the different outage causes along the y-axis. In each cell, show how many times each region experienced a power outage due to a particular cause.

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

Sort the values in the `'NorthEast'` column so that they appear in ascending order from top to bottom.

`sorty(h,'NorthEast')`

Create a heatmap of utility outages and display the values in the `'NorthEast'` column in descending order by rearranging the rows.

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

Create a heatmap of utility outages and rearrange the rows using values from multiple columns. Sort the rows so that the column `'SouthWest'` appears in ascending order. Since that column contains duplicate values, use the column `'NorthEast'` to sort the remaining rows.

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

Create a heatmap of utility outages and sort the values in in the `'NorthEast'` column so that they appear in ascending order, from top to bottom. Return the sorted color data and the row values (y values) in the order they appear along the y-axis.

```T = readtable('outages.csv'); h = heatmap(T,'Region','Cause'); [C,y] = sorty(h,'NorthEast')```
```C = 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 array {'earthquake' } {'fire' } {'unknown' } {'equipment fault' } {'energy emergency'} {'wind' } {'winter storm' } {'thunder storm' } {'attack' } {'severe storm' } ```

Create a heatmap of utility outages and sort the values in the left column in ascending order (from top to bottom) by rearranging the columns. Then, restore the original order.

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

Restore the original row order by setting the Y`DisplayData` property of the `HeatmapChart` object equal to the Y`Data` property.

`h.YDisplayData = h.YData;`

## Input Arguments

collapse all

Heatmap to update, specified as a `HeatmapChart` object.

Column to sort, specified as a character vector, string, cell array of character vectors, or string array indicating of one or more elements from the `XData` or `XDisplayData` property of the `HeatmapChart` object.

Example: `sorty(h,'MyColumnName')` sorts the elements in the column called `'MyColumnName'` in ascending order.

Data Types: `char` | `string` | `cell`

Direction to sort, specified as `'ascend'`, `'descend'`, a cell array of character vectors, or a string array.

• `'ascend'` — Sort all columns in in `column` in ascending order.

• `'descend'` — Sort all columns in `column` in descending order.

• Array — Sort in a unique direction for each column in `column`. Specify `direction` as a cell array of character vectors or a string array containing the elements `'ascend'` or `'descend'`. The array must be the same length as `column`.

Example: `{'ascend','descend','ascend'}` sorts the elements in the first column in ascending order. If there are any repeating values in the first column, then `sorty` breaks ties using the elements of the second column in descending order, and so on.

Data Types: `char` | `string` | `cell`

`NaN` placement, specified as one of these values:

• `'auto'` — List `NaN` elements last for ascending order and first for descending order.

• `'first'` — List `NaN` elements first.

• `'last'` — List `NaN` elements last.

Example: `sortx(h,column,'MissingPlacement','last')`

## Output Arguments

collapse all

Sorted color data, returned as a matrix. The values in the matrix appear in the same order as they appear on the heatmap.

The `ColorDisplayData` property of the `HeatmapChart` object stores the sorted color data. The `ColorData` property stores the unsorted color data.

Rearranged row order, returned as a cell array of character vectors.

The `YDisplayData` property of the `HeatmapChart` object stores the sorted row order. The `YData` property stores the unsorted row order.

## Algorithms

The `sorty` function sets these `HeatmapChart` object properties:

• `YDisplayData` — Property that stores the y-axis data.

• `ColorDisplayData` — Property that stores the color display data.

The `sorty` function also resets the `YLimits` property.