En este post aprenderás a dibujar mapas de calor en el lenguaje de programación R.
El contenido del artículo se estructura de la siguiente manera:
- Construcción de datos de ejemplo
- Ejemplo 1: crear un mapa de calor con la función de mapa de calor [Base R]
- Ejemplo 2: crear un mapa de calor con la función geom_tile [paquete ggplot2]
- Ejemplo 3: crear un mapa de calor con la función plot_ly [paquete plotly]
- Vídeo y recursos adicionales
Vamos a sumergirnos.
Construcción de datos de ejemplo
Usaremos la siguiente matriz para los ejemplos de este tutorial de R:
establecer _ seed ( 123 ) # Establecer semilla para datos de reproducibilidad <- matrix ( rnorm ( 100 , 0 , 10 ) , nrow = 10 , ncol = 10 ) # Crear ejemplos de datos colnames ( datos ) <- paste0 ( "col" , 1 : 10 ) # Nombres de columna nombres de fila ( datos ) <- paste0 ( "fila" ,1 : 10 ) # Nombres de fila |
Nuestros datos contienen diez columnas y diez filas con valores aleatorios normalmente distribuidos .
En los siguientes ejemplos, mostraré cómo crear mapas de calor en R basados en diferentes funciones y paquetes. Es útil conocer diferentes formas de crear mapas de calor, ya que cada paquete proporciona un diseño de mapa de calor diferente. ¡Así que sigue leyendo hasta el final del artículo!
Ejemplo 1: crear un mapa de calor con la función de mapa de calor [Base R]
La función más común para crear mapas de calor en R es la función heatmap(), que ya proporciona la instalación base de R.
La función de mapa de calor se aplica como se muestra a continuación:
mapa de calor ( datos ) # Aplicar función de mapa de calor |
Figura 1: Mapa de calor predeterminado en Base R.
La figura 1 ilustra el resultado del código R anterior. De forma predeterminada, la función de mapa de calor devuelve un mapa de calor con nombres de columnas y filas, así como un dendrograma .
Si queremos, podemos deshabilitar el dendrograma creado automáticamente:
mapa de calor ( datos, Rowv = NA, Colv = NA ) # Eliminar dendrograma |
Figura 2: Mapa de calor sin Dendrograma en Base R.
Además, podemos modificar los colores del mapa de calor especificando nuestra propia gama de colores con la función colorRampPalette. El siguiente código R produce una función que crea rangos de color entre los colores cyan y deeppink3 :
my_colors <- colorRampPalette ( c ( "cyan" , "deeppink3" ) ) # Rango de color manual |
Ahora, podemos crear un mapa de calor con esta gama de colores de la siguiente manera:
heatmap ( data, col = my_colors ( 100 ) ) # Heatmap con colores manuales |
Figura 3: Mapa de calor con rango de color manual en Base R.
Ejemplo 2: crear un mapa de calor con la función geom_tile [paquete ggplot2]
Como ya se mencionó al comienzo de esta página, muchos paquetes de R brindan funciones para la creación de mapas de calor en R.
Un paquete popular para gráficos es el paquete ggplot2 de tidyverse y en este ejemplo te mostraré cómo crear un mapa de calor con ggplot2.
El paquete ggplot2 requiere un formato de datos largo. Podemos crear este formato de datos con el paquete remodelar…
instalar _ paquetes ( "reformar" ) # Instalar la biblioteca de paquetes de remodelación ( "reformar" ) # Cargar paquete de remodelación |
…y la función de fusión:
data_melt <- melt ( data ) # Reorder data head ( data_melt ) # Primeras seis filas de datos # X1 X2 valor # fila1 col1 -14.15254153 # fila2 col1 -6.88199228 # fila3 col1 2.44972363 # fila4 col1 -0.04076637 # fila5 col1 3.54613210 # fila6 col1 -2.57462492 |
La salida de la consola de RStudio muestra las primeras 6 filas de nuestros datos reformados. Como puede ver, la función melt creó las dos columnas X1 y X2, que contienen todas las combinaciones posibles de filas y columnas, y una tercera columna con el valor del nombre, que contiene los valores correspondientes.
Para dibujar un mapa de calor con el paquete ggplot2, también necesitamos instalar y cargar ggplot2:
instalar _ paquetes ( "ggplot2" ) # Instalar la biblioteca de paquetes ggplot2 ( " ggplot2" ) # Cargar el paquete ggplot2 |
Ahora, podemos usar la función geom_tile del paquete ggplot2 para hacer un mapa de calor básico:
ggp <- ggplot ( data_melt, aes ( X1, X2 ) ) + # Crear mapa de calor con ggplot2 geom_tile ( aes ( fill = value ) ) ggp # Imprimir mapa de calor |
Figura 4: Mapa de calor predeterminado en el paquete ggplot2.
Como puede ver en la Figura 4, el patrón de las celdas del mapa de calor es el mismo que en Base R. Sin embargo, el diseño general tiene el estilo típico de ggplot2.
Por supuesto, ggplot2 también proporciona opciones para la modificación de nuestro mapa de calor. Por ejemplo, podemos usar la función scale_fill_gradient para dibujar un mapa de calor con un rango de color manual:
ggp + scale_fill_gradient ( bajo = "verde" , alto = "negro" ) # Colores manuales del mapa de calor |
Figura 5: Mapa de calor con rango de color manual en el paquete ggplot2.
Ejemplo 3: crear un mapa de calor con la función plot_ly [paquete plotly]
Otro paquete popular para mapas de calor es el paquete plotly :
instalar _ paquetes ( "plotly" ) # Instalar la biblioteca de paquetes plotly ( " plotly" ) # Cargar el paquete plotly |
El paquete plotly contiene la función plot_ly, que se puede usar para dibujar un mapa de calor especificando type = «heatmap»:
plot_ly ( z = data, type = "heatmap" ) # Aplicar la función plot_ly |
Figura 6: Mapa de calor predeterminado en el paquete plotly.
Nuevamente, el patrón es el mismo, pero el estilo general de la trama es diferente.
El paquete plotly también proporciona opciones adicionales para la modificación del mapa de calor. Si queremos cambiar el color, podemos especificar una gama de colores manualmente, o podemos usar algunas opciones predefinidas como escala de colores = “Grises”:
plot_ly ( z = datos, escala de colores = "Grises" , tipo = "mapa de calor" ) # Colores manuales |
Figura 7: Mapa de calor con rango de color manual en el paquete plotly.
Como puede ver en la Figura 7, la especificación Grays creó un mapa de calor en escala de grises.
Tenga en cuenta que el paquete plotly muestra sus gráficos en el visor de RStudio en lugar de en la ventana de gráficos de RStudio. Por ese motivo, debe exportar estos gráficos de forma diferente .
También tenga en cuenta que hay muchos otros paquetes disponibles para la creación de mapas de calor en R. En mi opinión, sin embargo, Base R, ggplot2 y plotly brindan las mejores soluciones.
Vídeo y recursos adicionales
Recientemente publiqué un video en mi canal de YouTube, que ilustra la sintaxis R de este artículo. Puedes encontrar el video a continuación:
Además, puede leer los otros tutoriales en mi sitio web:
En este tutorial de R aprendiste a hacer un mapa de calor . No dude en hacérmelo saber en los comentarios a continuación, si tiene preguntas adicionales.
Alejandro Lugón es un economista y escritor especializado en Python y R, conocido por ser el creador del blog Estadisticool. Nacido en México, Lugón se graduó de la Universidad Autónoma de México con una Licenciatura en Economía. Desde entonces ha trabajado como economista en varias empresas. Lugón también ha escrito varios libros sobre temas relacionados con la economía, el análisis de datos y la programación. Su blog Estadisticool se ha convertido en un lugar de referencia para los programadores de Python y R. Alejandro Lugón es una inspiración para aquellos que buscan aprender programación y análisis de datos. Su trabajo ha ayudado a muchas personas a entender mejor el uso de la tecnología para hacer sus trabajos.