pheatmap
La función pheatmap es similar a la función heatmap de R base, pero proporciona más control sobre el gráfico resultante. Puedes pasar una matriz numérica que contenga los valores a ser representados.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m)

Normalización
Si los valores de la matriz no están normalizados puedes normalizar por filas ("row") o por columnas ("column") haciendo uso del argumento scale.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, scale = "column")

Valores
Si estableces display_numbers = TRUE se mostrarán los valores para cada celda. Tambén puedes especificar el color y el tamaño de los textos.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m,
display_numbers = TRUE,
number_color = "black",
fontsize_number = 8)

Número de clusters
El número de clusters (grupos) se puede cambiar con kmeans_k. Si el número de clusters es pequeño puedes incrementar el tamaño de las celdas con cellheight o cellwidth.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, kmeans_k = 3, cellheight = 50)


Eliminar el dendrograma de las filas
Puedes pasar un objeto hclust al argumento cluster_rows o establecerlo como FALSE para eliminar el dendrograma de las filas.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, cluster_rows = FALSE)

Eliminar el dendrograma de las columnas
De manera equivalente al argumento anterior, cluster_cols controla cómo se debería crear el dendrograma de las columnas, en caso de crearse.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, cluster_cols = FALSE)

Eliminar los dendrogramas
Es posible eliminar ambos dendrogramas estableciendo cluster_cols y cluster_rows como FALSE.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m,
cluster_cols = FALSE,
cluster_rows = FALSE)
Color del borde
El argumento border_color controla el color del borde de las celdas. El valor por defecto es "grey60".
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, border_color = "black")

Paleta de colores
La paleta de colores por defecto se puede cambiar pasando un vector de colores al argumento color, tal y como se muestra en el siguiente ejemplo.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, color = hcl.colors(50, "BluYl"))


Puntos de corte de la leyenda
El número de clases en los que se divide la leyenda se puede personalizar con legend_breaks, pasando los puntos de corte como vector.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, legend_breaks = c(-2, 0, 2))

Etiquetas de la leyenda
Si estableces los puntos de corte también puedes pasar un vector de la misma longitud al argumento legend_labels para modificar las etiquetas.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m,
legend_breaks = c(-2, 0, 2),
legend_labels = c("Bajo", "Medio", "Alto"))

Eliminar la leyenda
Por último, si quieres deshacerte de la leyenda establece legend = FALSE.
# install.packages("pheatmap")
library(pheatmap)
# Datos
set.seed(8)
m <- matrix(rnorm(200), 10, 10)
colnames(m) <- paste("Col.", 1:10)
rownames(m) <- paste("Fila", 1:10)
# Mapa calor
pheatmap(m, legend = FALSE)
También te puede interesar