O pacote linkET da linguagem R desenha o mapa de aquecimento da rede de combinação de correlação

Um mapa de calor é um gráfico que usa cores para indicar dependências de dados. Existem muitos pacotes R que podem desenhar mapas de calor.No passado, introduzimos "o pacote pheatmap da linguagem R desenha mapas de calor". Hoje, apresentaremos o pacote linkET da linguagem R para desenhar mapas de calor de rede combinados de correlação. O mapa de calor de correlação significa a correlação entre o mapa de calor e outros dados e compara a relação interna entre vários dados.
insira a descrição da imagem aqui
O pacote linkET foi escrito por um de nossos compatriotas. Atualmente, ele precisa ser baixado usando devtools::install_github. A descrição do autor do pacote é que tudo pode ser conectado entre si, o que é bastante interessante. Vamos baixar o pacote primeiro,
devtools::install_github("Hy4m/linkET", force = TRUE)
Às vezes, o Rstudio solicitará que você atualize outros pacotes? Escolha 3 aqui, só não atualize.
Depois de baixar o pacote, importamos o pacote e os dados. Por ser um mapa de calor de correlação, precisamos importar dois dados

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)

insira a descrição da imagem aqui
insira a descrição da imagem aqui
Esses dois dados vêm da literatura Väre, H., Ohtonen, R. e Oksanen, J. (1995) Efeitos do pastoreio de renas na vegetação do sub-bosque em florestas secas de Pinus sylvestris Journal of Vegetation Science 6, 523–530 The varespec data frame tem
24 As linhas são 44 colunas, e as colunas são os valores de cobertura estimados para as 44 espécies. O nome da variável é composto por nomes científicos. A introdução dos dados diz que as pessoas que estão familiarizadas com os tipos de vegetação podem conhecê-lo rapidamente. Não sei que tipo de planta é, mas é o nome da planta de qualquer maneira . O quadro de dados varechem tem 24 linhas e 14 colunas, fornecendo as propriedades do solo para os mesmos locais do quadro de dados varespec. As medições químicas têm nomes óbvios que são característicos de alguns elementos metálicos. Baresoil representa a cobertura estimada de solo descoberto e Humdepth representa a espessura da camada de húmus.
O pacote linkET pode desenhar um único mapa de calor ou um mapa de calor de correlação, que mostraremos a seguir.
Tem várias funções especiais para introduzir primeiro, a função correlata pode calcular a correlação de dados

correlate(varechem)

insira a descrição da imagem aqui
Também é possível calcular o coeficiente de correlação de diferentes dados

correlate(varespec[1:30], varechem)

insira a descrição da imagem aqui
Depois de calcular a correlação, o gráfico pode ser gerado. Primeiro, os dados individuais

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

insira a descrição da imagem aqui
Outro dado duplo

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

insira a descrição da imagem aqui
Faça alterações de cores personalizadas

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

insira a descrição da imagem aqui
A função Qcorrplot pode visualizar a matriz coeficiente

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

insira a descrição da imagem aqui
O coeficiente Type pode nos controlar para tirar gráficos parciais, por exemplo, eu só quero pegar a metade inferior

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

insira a descrição da imagem aqui
Você também pode customizar seu próprio estilo usando as funções set_corrplot_style() e geom_square() Por exemplo, eu quero mudar a caixa para um círculo e definir as cores como vermelho, azul e branco.

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

insira a descrição da imagem aqui
Se você quiser voltar para a cor personalizada do sistema, você pode usar

set_default_style()

Em seguida, vamos desenhar o mapa de calor da rede da correlação. Antes de desenhar, precisamos realizar um teste de Mantel. O autor do pacote R disse isso, o teste de Mantel e Mantel parcial da matriz de dissimilaridade. , observe aqui que spec_select seleciona o valor do índice da coluna e os dados varespec são exatamente 44 colunas

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

insira a descrição da imagem aqui
Após obter o valor R e o valor P de cada categoria, nós os representamos em 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")))

insira a descrição da imagem aqui
Após o cálculo, você pode desenhar mais

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

insira a descrição da imagem aqui
Pode ser modificado posteriormente. Esta linha de conexão é muito grossa e não muito bonita. Vamos ajustá-la

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))

insira a descrição da imagem aqui
cor de linha personalizada

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))

insira a descrição da imagem aqui
Alterar o nome da legenda

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))

insira a descrição da imagem aqui
Ainda há muitos detalhes que podem ser modificados, então não vou apresentá-los um por um. A conta oficial respondeu: Dados do mapa de calor da rede, você pode obter os dados.

Acho que você gosta

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