桑葚图

今天我们复现一幅2021年CellGraphical abstract的图。

Title:Human oral mucosa cell atlas reveals a stromal-neutrophil axis regulating tissue immunity

DOI:10.1016/j.cell.2020.07.009

  • 读图

  • 复现结果

  • 示例数据和代码领取

    • 木舟笔记2022年度VIP企划

  • 开始绘制

    • 饼图

    • 堆叠条形图

    • 原图复现

  • 往期内容

读图

image-20220426142813997

来看一下这个摘要图(红色箭头),作者用堆叠条形图来展示两组样本间比例的变化,中间又增加了连线让相同组分之间对对比更加的直观。一般这种数据就是以饼图或是堆叠条形图来展现,今天我们就用饼图条形图两种形式都来复现一下。

复现结果

桑葚图

示例数据和代码领取

点赞在看 本文,分享至朋友圈集赞20个保留60分钟,截图发至微信mzbj0002领取。

木舟笔记2022年度VIP可免费领取

木舟笔记2022年度VIP企划

权益:

  1. 2022年度木舟笔记所有推文示例数据及代码(在VIP群里实时更新)

  2. 木舟笔记科研交流群

  3. 半价购买跟着Cell学作图系列合集(免费教程+代码领取)|跟着Cell学作图系列合集。

收费:

99¥/人。可添加微信:mzbj0002 转账,或直接在文末打赏。

开始绘制

饼图

数据是三组样本蛋白质的亚细胞定位数据,一般的可视化方法就会用饼图来展示,饼图十分常见而且制作特别简单,大部分情况用excelorigin等软件都可以快速制作,所以在R中的相关函数很少。这里我们用到了tastypie包,其中的pie_bake函数生成一个ggplot对象可以非常方便的调整你的饼图。

# 加载包及导入数据
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)

在R中制作饼图也是十分的简单,但当多组进行比较的时候多个饼图的对比就没那么直观了,这时候我们就需要做堆叠条形图。

pie

堆叠条形图

首先对数据进行前处理做成适合ggplot作图的数据格式,把宽表转换为长表,创建一列组成比例用于后面分割图形。

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

geom_bar或是geom_col可以很轻松的做出堆叠条形图。

ggplot(mdf, aes(x = Sample,y=Proportion,fill = Subcellar.location)) +geom_col(width = 0.4)+theme_base()

barplot

但为了复现文章中原图的格式,我们调用ggalluvial包中的geom_alluvium或是geom_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

桑葚图

原图复现

大体结构已经做出来了,后面就是添加一些连线,强烈建议在AI中修改,只需要几分钟就可以修改好,在R中有几种实现的方法,但总的来说都比较麻烦这里介绍一种,有朋友有好的实现思路也可以在后台留言。一种实现方法就是计算出各节点的坐标然后用geom_segment添加白色线段。

跟着 Cell 学作图 | 桑葚图(ggalluvial)相关推荐

  1. 跟着CELL学作图|1.火山图

    跟着CELL学作图之火山图 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.cell.2020.05.032 这 ...

  2. 跟着Cell学作图 | 12.韦恩图(Vennerable包)

    "实践是检验真理的唯一标准." "复现是学习生信的最好办法." 2021.4.12_1 DOI: 10.1016/j.cell.2020.05.032 这篇20 ...

  3. 跟着 Cell 学作图 | 4.小提琴图

    跟着 Cell 学作图 | 4.小提琴图 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.cell.2020.0 ...

  4. 跟着 Cell 学作图 | 3.箱线图+散点+差异显著性检验

    跟着 Cell 学作图 | 3.箱线图+散点+差异显著性检验 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.c ...

  5. 跟着Cell学作图|9.PPI分析(GeNets数据库)

    9.PPI分析(GeNets数据库) "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.cell.2020.05. ...

  6. 跟着Cell学作图 | 5.UMAP降维分析

    跟着 Cell 学作图 | 5.UMAP降维分析 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." 2021.4.12_1 DOI: 10.10 ...

  7. 跟着Cell学作图 | 2.柱状图+误差棒+散点+差异显著性检验

    跟着 Cell 学作图 | 2.柱状图+误差棒+散点 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." 2021.4.12_1 DOI: 10. ...

  8. 跟着iMeta学作图 | 山峦图展示微生物丰度随盐度增加的动态变化

    本文代码已经上传至https://github.com/iMetaScience/iMetaPlot如果你使用本代码,请引用:Changchao Li. 2023. Destabilized micr ...

  9. 跟着 NC 学作图 | 多组散点图+配对连线+差异分析

    scatter_paired_line 今天我们复现一幅2022年7月发表在nature communications上的配对连线散点图. ❝ Title:Evaluation of transpla ...

最新文章

  1. 存储过程执行不报错,时间太快,但是执行无效
  2. Oracle用户密码过期和用户被锁解决方法【转】
  3. 安卓修改动画效果--动画差值器TimeInterpolator
  4. JSP简单练习-javaBean的简单应用
  5. Django 用 uploadify 实现图片批量上传
  6. 树控件,多条件组合查询与混合数据源
  7. 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(安装TensorFlow2.0)
  8. MySQL 基础 ———— SAVEPOINT 的应用
  9. Windows下安装solr步骤详解
  10. 【高并发高性能高可用之海量数据MySQL实战】-提纲目录-不断更新中...
  11. iOS 手势操作和事件传递响应链
  12. ctf-希尔伯特曲线隐写
  13. Xilinx平台SRIO介绍(五)示例工程Example Design介绍
  14. 联通光纤猫虚拟服务器设置,联通光纤猫怎么设置 联通光纤猫设置方法【详细步骤】...
  15. 前端vue3 tsx风格开发
  16. linux qt3编译出错,编译ARM 平台的qt4.7.3 遇到的一些问题总结
  17. 小程序分包加载不同项目字体图标引用问题
  18. 【服务器数据恢复】LINUX误删除、误格式化的数据恢复
  19. zabbix4.0利用API导入导出dashboard
  20. 笔记:宾大《Algebra, Topology, Differential Calculus, and Optimization Theory For CS and ML》——第三章第九节

热门文章

  1. 狼叔来找翻译人员了--plato--持续翻译中.....
  2. 利用数字孪生技术,使医疗行业快速进入,“元宇宙”
  3. 计算机网络实验一 使用eNSP搭建基础网络
  4. 2004-12-12
  5. 再造一个甘肃建投 甘肃省建设投资计划继续推进改革和结构调整
  6. 2018年北邮计算机考研分数线,2018年北京邮电大学软件学院考研复试分数线
  7. matlab gui显示图片 pathname filename,GUI中如何文件名和路径的合并问题求解!
  8. python 任务队列 huey_python huey中文文档(二)
  9. 椭圆检测-点到椭圆的近似距离(Rosin distance)
  10. c语言按键怎么用中断防抖,按键外部中断的时候如何防抖?