El paquete linkET en lenguaje R dibuja un mapa de calor de la red de combinación de correlación

Un mapa de calor es un gráfico que usa color para indicar dependencias de datos. Hay muchos paquetes R que pueden dibujar mapas de calor. En el pasado, introdujimos el "paquete pheatmap de lenguaje R dibuja mapas de calor". Hoy presentaremos el paquete linkET de lenguaje R para dibujar mapas de calor de red combinados de correlación. El mapa de calor de correlación significa la correlación entre el mapa de calor y otros datos, y compara la relación interna entre múltiples datos.
inserte la descripción de la imagen aquí
El paquete linkET fue escrito por uno de nuestros compatriotas, actualmente necesita descargarse usando devtools::install_github, la descripción del autor del paquete es que todo se puede conectar entre sí, lo cual es bastante interesante. Primero descarguemos el paquete,
devtools::install_github("Hy4m/linkET", force = TRUE) ¿
Algunas veces Rstudio le pedirá que actualice otros paquetes? Elija 3 aquí, simplemente no lo actualice.
Después de descargar el paquete, importamos el paquete y los datos. Debido a que es un mapa de calor de correlación, necesitamos importar dos datos

library(linkET)
library(ggplot2)
library(dplyr)
varespec<-read.csv("E:/r/test/varespec.csv",sep=',',header=TRUE)
varechem<-read.csv("E:/r/test/varechem.csv",sep=',',header=TRUE)

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Estos dos datos provienen de la literatura Väre, H., Ohtonen, R. y Oksanen, J. (1995) Effects of reindeer grazing on understorey vegetation in dry Pinus sylvestris forest.Journal of Vegetation Science 6, 523–530 The varespec data frame tiene
24 Las filas son 44 columnas, y las columnas son los valores de cobertura estimados para las 44 especies. El nombre de la variable se compone de nombres científicos. La introducción de datos dice que las personas que están familiarizadas con los tipos de vegetación pueden saberlo de un vistazo. No sé qué tipo de planta es, pero es el nombre de la planta de todos modos. . El marco de datos varechem tiene 24 filas y 14 columnas, lo que proporciona las propiedades del suelo para las mismas ubicaciones que en el marco de datos varespec. Las medidas químicas tienen nombres obvios que son característicos de algunos elementos metálicos. Baresoil representa la cobertura estimada de suelo desnudo y Hum depth representa el espesor de la capa de humus.
El paquete linkET puede dibujar un mapa de calor único o un mapa de calor de correlación, que mostraremos a continuación.
Tiene varias funciones especiales para introducir primero, la función de correlación puede calcular la correlación de datos

correlate(varechem)

inserte la descripción de la imagen aquí
También es posible calcular el coeficiente de correlación de diferentes datos

correlate(varespec[1:30], varechem)

inserte la descripción de la imagen aquí
Después de calcular la correlación, se puede generar el gráfico. Primero, los datos individuales

correlate(varechem) %>% 
  as_md_tbl() %>% 
  qcorrplot() +
  geom_square()

inserte la descripción de la imagen aquí
Otro dato doble

correlate(varespec[1:30], varechem) %>% 
  qcorrplot() +
  geom_square()

inserte la descripción de la imagen aquí
Haz cambios de color personalizados

correlate(varespec[1:30], varechem) %>% 
  qcorrplot() +
  geom_square() +
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu"))

inserte la descripción de la imagen aquí
La función Qcorrplot puede visualizar la matriz coeficiada

qcorrplot(correlate(varechem)) +
  geom_square() +
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu"))

inserte la descripción de la imagen aquí
El coeficiente Tipo puede controlarnos para tomar gráficos parciales, por ejemplo, solo quiero tomar la mitad inferior

qcorrplot(correlate(varechem), type = "lower") +
  geom_square() +
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu"))

inserte la descripción de la imagen aquí
También puede personalizar su propio estilo usando la función set_corrplot_style() y la función geom_square() Por ejemplo, quiero cambiar el cuadro a un círculo y definir los colores como rojo, azul y blanco.

set_corrplot_style(colours = c("red", "white", "blue"))
qcorrplot(correlate(varechem), type = "lower") +
  geom_shaping(marker = "circle")

inserte la descripción de la imagen aquí
Si desea volver al color personalizado del sistema, puede utilizar

set_default_style()

A continuación, dibujemos el mapa de calor de la red de la correlación. Antes de dibujar, debemos realizar una prueba de Mantel. El autor del paquete R dijo esto, la prueba de Mantel y Mantel parcial de la matriz de disimilitud. , tenga en cuenta aquí que spec_select selecciona el valor de índice de la columna, y los datos de varespec son exactamente 44 columnas

mantel <- mantel_test(varespec, varechem,
                      spec_select = list(Spec01 = 1:7,
                                         Spec02 = 8:18,
                                         Spec03 = 19:37,
                                         Spec04 = 38:44))

inserte la descripción de la imagen aquí
Después de obtener el valor R y el valor P de cada categoría, los representamos en segmentos

mantel<-mantel %>% 
  mutate(rd = cut(r, breaks = c(-Inf, 0.2, 0.4, Inf),
                  labels = c("< 0.2", "0.2 - 0.4", ">= 0.4")),
         pd = cut(p, breaks = c(-Inf, 0.01, 0.05, Inf),
                  labels = c("< 0.01", "0.01 - 0.05", ">= 0.05")))

inserte la descripción de la imagen aquí
Después del cálculo, puede dibujar más

qcorrplot(correlate(varechem), type = "lower", diag = FALSE) +
  geom_square() +
  geom_couple(aes(colour = pd, size = rd), 
              data = mantel, 
              curvature = nice_curvature())

inserte la descripción de la imagen aquí
Se puede modificar aún más. Esta línea de conexión es demasiado gruesa y no muy hermosa. Vamos a ajustarla.

qcorrplot(correlate(varechem), type = "lower", diag = FALSE) +
  geom_square() +
  geom_couple(aes(colour = pd, size = rd), 
              data = mantel, 
              curvature = nice_curvature()) +
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu")) +
  scale_size_manual(values = c(0.5, 1, 2))

inserte la descripción de la imagen aquí
color de línea personalizado

qcorrplot(correlate(varechem), type = "lower", diag = FALSE) +
  geom_square() +
  geom_couple(aes(colour = pd, size = rd), 
              data = mantel, 
              curvature = nice_curvature()) +
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu")) +
  scale_size_manual(values = c(0.5, 1, 2)) +
  scale_colour_manual(values = color_pal(3))

inserte la descripción de la imagen aquí
Cambiar el nombre de la leyenda

qcorrplot(correlate(varechem), type = "lower", diag = FALSE) +
  geom_square() +
  geom_couple(aes(colour = pd, size = rd), 
              data = mantel, 
              curvature = nice_curvature()) +
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu")) +
  scale_size_manual(values = c(0.5, 1, 2)) +
  scale_colour_manual(values = color_pal(3)) +
  guides(size = guide_legend(title = "Mantel's r",
                             override.aes = list(colour = "grey35"), 
                             order = 2),
         colour = guide_legend(title = "Mantel's p", 
                               override.aes = list(size = 3), 
                               order = 1),
         fill = guide_colorbar(title = "Pearson's r", order = 3))

inserte la descripción de la imagen aquí
Todavía hay muchos detalles que se pueden modificar, por lo que no los presentaré uno por uno.La cuenta oficial respondió: Datos del mapa de calor de la red, puede obtener los datos.

Supongo que te gusta

Origin blog.csdn.net/dege857/article/details/132097240
Recomendado
Clasificación