Aprende a mapear con Cell | Mapa Mulberry (ggalluvial)

ac5d17352e880a6b105479fea5a6af7e.png

Ilustración de morera

Hoy reproducimos una imagen de 2021 Cell.Graphical abstract

Título :El atlas de células de la mucosa oral humana revela un eje estromal-neutrófilo que regula la inmunidad tisular

DOI : 10.1016/j.cell.2020.07.009

  • Lee la imagen

  • Reproducir resultados

  • Muestra de datos y recogida de códigos

    • Proyecto VIP Canoe Notes 2022

  • empieza a dibujar

    • Gráfico circular

    • Gráfico de barras apiladas

    • Reproducción de imagen original

  • Contenido pasado

Lee la imagen

0c57c441c2fcaa00a450c37752bf541d.png
imagen-20220426142813997

Eche un vistazo a este gráfico de resumen (flecha roja), el autor usa un gráfico de barras apiladas para mostrar el cambio en las proporciones entre los dos grupos de muestras y agrega una línea en el medio para que la comparación entre los mismos componentes sea más intuitiva. . Por lo general, este tipo de datos se muestra en un gráfico circular o en un gráfico de barras apiladas.Hoy usaremos tanto el gráfico circular como el gráfico de barras para reproducirlo.

Reproducir resultados

b668bbbd8d18f966a4cd4ad94a2c91f5.png
Ilustración de morera

Muestra de datos y recogida de códigos

点赞, 在看este artículo, compártalo en el círculo de amigos 集赞20个y 保留60分钟envíe la captura de pantalla a WeChat para mzbj0002recibirlo.

Canoe Notes 2022 VIP se puede obtener de forma gratuita .

Proyecto VIP Canoe Notes 2022

derechos e intereses:

  1. Datos de muestra y código de todos los tuits de Canoe Notes 2022 (actualizados en tiempo real en el grupo VIP) .

    78ab882f7003a2a69ffdcdde1ce98d9b.png
  2. Canoa Notas Grupo de Intercambio de Investigación Científica .

  3. Compra a mitad de precio 跟着Cell学作图系列合集(tutorial gratis + colección de códigos)|Sigue a Cell para aprender a dibujar una colección de series .

PEAJE:

99¥/persona . Puede agregar WeChat: mzbj0002transferir dinero o dar una recompensa directamente al final del artículo.

a66d06c0c0c1fcc7ee948e27824ba2a9.png

empieza a dibujar

Gráfico circular

Los datos son los datos de localización subcelular de tres grupos de proteínas de muestra. El método de visualización general se mostrará mediante gráficos circulares. Los gráficos circulares son muy comunes y muy simples de hacer . Hay pocas funciones relacionadas en . Aquí usamos el tastypiepaquete, que tiene pie_bakefunciones que generan un ggplotobjeto que puede ser muy conveniente para ajustar su gráfico circular.

# 加载包及导入数据
library(ggplot2)
library(ggthemes)
library(tidyverse)
library(ggalluvial)
library(ggsci)
library(cowplot)
library(tastypie)
rm(list = ls())
df=read.csv('Sublocation.csv',header = T)
head(df)
p1=pie_bake(data = data.frame(subloc=df$Subcellar.location,ratio=df$A),
           template = "blue1",#调色盘是必要参数,不影响手动添加颜色
           perc = TRUE,#显示百分比
           group_name = "a",
           title ='A')+
  theme_classic()+
  scale_fill_npg()+#ggsci中的调色盘
  theme(panel.background = element_blank(),
        axis.line.x = element_blank(),
        axis.line.y = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank(),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.x = element_blank(),
        axis.ticks.y = element_blank(),
        legend.title = element_text(),
        plot.title = element_text(hjust = 0.5,vjust=-2,size = 15))+labs(fill = 'Subcellular location')
p2=pie_bake(data = data.frame(subloc=df$Subcellar.location,ratio=df$C),
         template = "blue1",
         perc = TRUE,
         group_name = "a",
         title ='C')+
  theme_classic()+scale_fill_npg()+
  theme(panel.background = element_blank(),
        axis.line.x = element_blank(),
        axis.line.y = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank(),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.x = element_blank(),
        axis.ticks.y = element_blank(),
        legend.title = element_text(),
        plot.title = element_text(hjust = 0.5,vjust=-2,size = 15))+labs(fill = 'Subcellular location')
p3=pie_bake(data = data.frame(subloc=df$Subcellar.location,ratio=df$B),
         template = "blue1",
         perc = TRUE,
         group_name = "a",
         title ='B')+
  theme_classic()+scale_fill_npg()+
  theme(panel.background = element_blank(),
        axis.line.x = element_blank(),
        axis.line.y = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank(),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.x = element_blank(),
        axis.ticks.y = element_blank(),
        legend.title = element_text(),
        plot.title = element_text(hjust = 0.5,vjust=-2,size = 15))+
  labs(fill = 'Subcellular location')


plot_grid(p1,p2,p3)

También es muy sencillo hacer un gráfico circular en R, pero cuando se comparan varios grupos, la comparación de varios gráficos circulares no es tan intuitiva. En este momento, necesitamos hacer un gráfico de barras apiladas.

d8fc6c5689367d26662a05124e9a4f08.png
tarta

Gráfico de barras apiladas

Primero, preprocesar los datos en ggplotun formato de datos adecuado para dibujar, convertir la tabla ancha en una tabla larga y crear una columna de proporciones para luego dividir el gráfico.

mdf=df%>%
  pivot_longer(-Subcellar.location,names_to = 'Sample',values_to = 'Value')%>%
  group_by(Sample)%>%
  mutate(Proportion=Value/sum(Value))

geom_barO geom_colpuede hacer fácilmente un gráfico de barras apiladas.

ggplot(mdf, aes(x = Sample,y=Proportion,fill = Subcellar.location)) +
  geom_col(width = 0.4)+
  theme_base()
62299d263e1f9ff950d829ec8c9c61d5.png
gráfico de barras

Sin embargo, para reproducir el formato de la imagen original en el artículo, llamamos a la función o ggalluvialen el paquete para hacer la imagen de mora (imagen de impacto) Más adelante explicaremos la imagen de mora (imagen de impacto) que es brevemente explicado aquí como una aplicación práctica.geom_alluviumgeom_flow

g=ggplot(mdf, aes(x = Sample,y=Proportion,fill = Subcellar.location, 
                stratum = Subcellar.location, alluvium = Subcellar.location)) +
  geom_col(width = 0.4,color=NA)+
  geom_flow(width = 0.4,alpha = 0.2,knot.pos = 0)   +#knot.pos可以使连线更直
  #geom_alluvium( width = 0.4,alpha = 0.2,knot.pos = 0)+ 与geom_flow效果相似
  scale_fill_manual(values = pal_npg()(4))+
  theme_map()+
  theme(axis.text.x=element_text(size=20,vjust = 5),
        legend.position = 'none')
g
8773bcb58a053f0f5f7a2c25c3b175f8.png
Ilustración de morera

Reproducción de imagen original

La estructura general ya está hecha, y algunas conexiones se agregarán más adelante. Se recomienda encarecidamente AImodificarla en R. Solo toma unos minutos modificarla. Hay varias formas de lograrlo en R, pero en general, es es más problemático. Aquí hay una introducción. Si tienes amigos que tienen buenas ideas para implementar, también puedes dejar un mensaje en segundo plano. Una forma de hacerlo es calcular las coordenadas de cada nodo y luego geom_segmentagregar segmentos de línea blanca.

Supongo que te gusta

Origin blog.csdn.net/weixin_45822007/article/details/124464398
Recomendado
Clasificación