Ejemplo de mapa de calor en R

por | Jun 10, 2018 | R | 7 Comentarios

Gráfico de mapa de calor de 2 variables

Muestra un ejemplo en R de un mapa de calor, para ellos se utiliza la librería ggplot2.

# Cargar librerias
library(reshape2)
library(ggplot2)

# Generar la matriz

# Definir nombres de filas y columnas
nombre_genes <- paste(rep("Gen", 10), LETTERS[1:10], sep="_") # Nombres de Filas
nombre_pacientes <- paste(rep("Paciente", 5), seq(1,5,1), sep="_") # Nombres de Columnas

# Generar valores aleatorios de la matriz
valores <- data.frame(genes = nombre_genes, # Poner nombre a las columnas
                      matrix(rnorm(50, 2, 1.8),
                            nrow = length(nombre_genes),
                            ncol = length(nombre_pacientes))
                      )
# Poner nombre a las filas
names(valores)[2:(length(nombre_pacientes)+1)] <- nombre_pacientes

# Reorganizar el dataframe para ponerlo en formato entendible por el mapa de calor
datos <- melt(valores, id.vars = "genes")
names(datos)[2:3] <- c("paciente", "nivel")
head(datos)


# Pintar el gráfico
ggplot(datos, aes(paciente, genes )) +
  geom_tile(aes(fill = nivel), color = "white") +
  scale_fill_gradient(low = "white", high = "steelblue") +
  ylab("genes ") +
  xlab("pacientes") +
  theme(legend.title = element_text(size = 10),
        legend.text = element_text(size = 12),
        plot.title = element_text(size=16),
        axis.title=element_text(size=14,face="bold"),
        axis.text.x = element_text(angle = 90, hjust = 1)) +
  labs(fill = "Nivel")
 
Mapa de calor en R
 

7 Comentarios

  1. Alejandro Guevara

    Hola! Soy nuevo en R y necesito hacer un mapa de calor de unos valores de una matriz:
    > geo
    [,1] [,2] [,3] [,4] [,5]
    [1,] 0.0000 264.9976 300.09596 113.1631 279.85306
    [2,] 264.9976 0.0000 125.22228 175.8369 130.11184
    [3,] 300.0960 125.2223 0.00000 187.6386 24.83882
    [4,] 113.1631 175.8369 187.63859 0.0000 166.83119
    [5,] 279.8531 130.1118 24.83882 166.8312 0.00000

    me podrías ayudar? Muchas gracias

    Responder
  2. Diego Calvo

    Revísate el ejemplo y cambia los valores por que tengo por los que tú necesitas.

    Responder
  3. Elizabeth

    Hola Diego buenas tardes!!! Tengo una inquietud, tengo un mapa de calor de dos variables y quiero cambiar los colores pero no que cambie el orden de datos. Que me sugieres?

    Responder
    • Diego Calvo

      Buenas Elizabeth, te sugiero que cambies el color en «scale_fill_gradient(low = «white», high = «red»)». Al cambiarlo por esta línea te los pintaría en rojo.

      Responder
  4. Karen Rojas

    Gracias por tus tan valiosos aportes

    Responder
  5. Mon

    Thanks Diego. It is clear, neat and tidy. It is a perfect example.

    Responder
  6. José Hernández

    Gracias Diego por tu valiosa aportación. Yo quiero hacer un mapa de calor de dos variable X,Y pero el llenado (fill) son dos variables, digamos A y B, ¿se puede hacer?

    Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *