`heatmap`

function
The `heatmap`

function can draw a heat map in R from a matrix. In the following examples we are going to use a square matrix but note that the number of rows and columns doesn’t need to be the same.

```
# Matrix
m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- paste("Col", 1:10)
rownames(m) <- paste("Row", 1:10)
heatmap(m)
```

**Data normalization**

The data is normalized by rows by default. However, you might need to normalize it in the column direction (`"column"`

) or if no normalization must be carried at all (`"none"`

).

```
# Matrix
m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- paste("Col", 1:10)
rownames(m) <- paste("Row", 1:10)
heatmap(m, scale = "column")
```

**Color customization**

You can pass a color palette to the `col`

argument of the `heatmap`

function. In the following example we are using the viridis palette via `hcl.colors`

.

```
# Matrix
m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- paste("Col", 1:10)
rownames(m) <- paste("Row", 1:10)
heatmap(m, col = hcl.colors(50))
```

**Side colors**

It is possible to pass a vector of colors to the `ColSideColors`

and `RowSideColors`

argument to annotate the columns and the rows of the matrix, respectively.

```
# Matrix
m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- paste("Col", 1:10)
rownames(m) <- paste("Row", 1:10)
heatmap(m,
ColSideColors = rainbow(ncol(m)),
RowSideColors = rainbow(nrow(m)))
```

**Remove row dendrogram**

The `Rowv`

argument controls if the row dendrogram should be computed and how. You can pass a `dendrogram`

or a vector specifying the order. Setting it to `NA`

will remove the dendrogram.

```
# Matrix
m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- paste("Col", 1:10)
rownames(m) <- paste("Row", 1:10)
heatmap(m, Rowv = NA)
```

**Remove column dendrogram**

The `Colv`

argument is the equivalent of `Rowv`

but for columns. Set it to `NA`

to remove the column dendrogram.

```
# Matrix
m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- paste("Col", 1:10)
rownames(m) <- paste("Row", 1:10)
heatmap(m, Colv = NA)
```

**Remove both dendrograms**

Setting `Rowv`

and `Colv`

to `NA`

will remove both dendrograms of the heat map and no reordering will be computed.

```
# Matrix
m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- paste("Col", 1:10)
rownames(m) <- paste("Row", 1:10)
heatmap(m, Rowv = NA, Colv = NA)
```

See also