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

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

scatter_paired_line

今天我们复现一幅2022年7月发表在nature communications上的配对连线散点图

Title:Evaluation of transplacental transfer of mRNA vaccine products and functional antibodies during pregnancy and infancy

DOI:https://doi.org/10.1038/s41467-022-32188-1

之前复现过的「散点图」

  1. 跟着 Cell 学作图 | 箱线图+散点(组间+组内差异分析)
  2. R实战 | 对称云雨图 + 箱线图 + 配对散点 + 误差棒图 +均值连线
  3. 跟着 Cell 学作图 | 分组抖动散点图+差异分析
  4. 跟着 Cell 学作图 | 分组蜂群图+均值线+差异分析(组间+组内)

本期图片

figure

结果展示

纯R实现,放心食用。

复现结果

示例数据和代码领取

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

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

木舟笔记2022年度VIP企划

「权益:」

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

绘制

# 生成示例数据
dt = data.frame(sample = paste0('sample',1:30),
                A = runif(30,0,450),
                B = runif(30,100,500),
                C = runif(30,0,300))
head(dt)
# 长宽转换
library(tidyverse)
library(reshape2)
dt_long <- melt(dt,
                measure.vars = c("A","B",'C'),
                variable.name = "group",
                value.name = "value")
# 绘图
library(ggplot2)
library(ggthemes)
head(dt_long)
# 绘制散点图+配对连线
p1 <- ggplot(dt_long,aes(group, value, fill = group))+
  geom_line(aes(group = sample),
            size = 0.5)+#图层在下,就不会显示到圆心的连线
  geom_point(shape = 21,
             size = 3,
             stroke = 0.6,
             color = 'black')+
  scale_x_discrete(expand = c(-1.05, 0)) + # 坐标轴起始
  scale_fill_manual(values = c('#800040','#fc6666','#108080'))+
  geom_rangeframe() + # 坐标轴分离
  theme_tufte() +
  theme(legend.position = 'none',  # 标签字体等
        axis.text.y = element_text(size = 14,
                                   face = "bold"),
        axis.text.x = element_text(size =14,
                                   face = "bold"),
        axis.title.y = element_text(size = 15, 
                                    color = "black",
                                    face = "bold")) +
  labs(x = ' ', 
       y = 'Values')
p1
# 为了绘制原图的差异形式 手动计算p值
library(rstatix)
result = t_test(dt_long,value~group)  
head(result)
# 添加显著性标记
p2 <- p1 +  
  coord_cartesian(clip = 'off',ylim = c(0,500))+ 
  theme(plot.margin = margin(1,0,0,0.5,'cm'))+ 
  annotate('segment',x=1,xend=1.99,y=510,yend=510,color='black',cex=.6)+
  annotate('segment',x=1,xend=1,y=505,yend=515,color='black',cex=.6)+
  annotate('segment',x=1.99,xend=1.99,y=505,yend=515,color='black',cex=.6)+
  annotate('segment',x=2.01,xend=3,y=510,yend=510,color='black',cex=.6)+
  annotate('segment',x=2.01,xend=2.01,y=505,yend=515,color='black',cex=.6)+
  annotate('segment',x=3,xend=3,y=505,yend=515,color='black',cex=.6)+
  annotate('segment',x=1,xend=3,y=530,yend=530,color='black',cex=.6)+
  annotate('segment',x=1,xend=1,y=525,yend=535,color='black',cex=.6)+
  annotate('segment',x=3,xend=3,y=525,yend=535,color='black',cex=.6)+
  annotate("text", x = 1.5, y = 520, label ="p = 0.080",size = 6)+
  annotate("text", x = 2.5, y = 520, label ="p = 0.129",size = 6)+
  annotate("text", x = 2, y = 540, label ="p = 0.0004",size = 6)
p2
ggsave('paired_scatter.pdf',p2,width = 8,height = 7)

复现结果

往期内容

  1. CNS图表复现|生信分析|R绘图 资源分享&讨论群!
  2. 这图怎么画| 有点复杂的散点图
  3. 这图怎么画 | 相关分析棒棒糖图
  4. 组学生信| Front Immunol |基于血清蛋白质组早期诊断标志筛选的简单套路
  5. (免费教程+代码领取)|跟着Cell学作图系列合集
  6. Q&A | 如何在论文中画出漂亮的插图?
  7. 跟着 Cell 学作图 | 桑葚图(ggalluvial)
  8. R实战 | Lasso回归模型建立及变量筛选
  9. 跟着 NC 学作图 | 互作网络图进阶(蛋白+富集通路)(Cytoscape)
  10. R实战 | 给聚类加个圈圈(ggunchull)
  11. R实战 | NGS数据时间序列分析(maSigPro)
  12. 跟着 Cell 学作图 | 韦恩图(ggVennDiagram)
相关文章
R实战 | 对称云雨图 + 箱线图 + 配对散点 + 误差棒图 +均值连线
R实战 | 对称云雨图 + 箱线图 + 配对散点 + 误差棒图 +均值连线
1836 1
R实战 | 对称云雨图 + 箱线图 + 配对散点 + 误差棒图 +均值连线
|
算法
经典控制算法——PID算法原理分析及优化
这篇文章介绍了PID控制算法,这是一种广泛应用的控制策略,具有简单、鲁棒性强的特点。PID通过比例、积分和微分三个部分调整控制量,以减少系统误差。文章提到了在大学智能汽车竞赛中的应用,并详细解释了PID的基本原理和数学表达式。接着,讨论了数字PID的实现,包括位置式、增量式和步进式,以及它们各自的优缺点。最后,文章介绍了PID的优化方法,如积分饱和处理和微分项优化,以及串级PID在电机控制中的应用。整个内容旨在帮助读者理解PID控制的原理和实际运用。
1650 1
|
数据可视化
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
|
计算机视觉 Python
python基于opencv工具掌纹主线提取
我们将在这篇文章中使用Python和OpenCV库来找出我们手掌中的主线。
|
数据采集 存储 监控
数据治理:解锁数据资产潜力,驱动企业决策与业务增长的密钥
在当今这个数据驱动的时代,企业所拥有的数据资产已成为其核心竞争力的重要组成部分。然而,仅仅拥有海量数据并不足以确保成功,关键在于如何有效地管理和利用这些数据,以支持精准决策、优化运营流程并推动业务持续增长。这就是数据治理的重要性所在——它是一套系统性的方法和流程,旨在确保数据质量、安全性、可用性和合规性,从而让数据资产能够最大化地支持企业决策和业务增长。
|
搜索推荐 Docker 容器
生信分析代码之前还好好的,怎么就报错了 Error in Ops. data. frame(guide_loc, panel_loc) :'==' only defined for equally-sized data frames
执行 `DimPlot` 函数时遇到错误 `;Error in Ops. data. frame(g guides_loc, panel_loc) : &#39;==&#39; only defined for equally-sized data frames`。解决方案和办法
2267 0
生信分析代码之前还好好的,怎么就报错了 Error in Ops. data. frame(guide_loc, panel_loc) :'==' only defined for equally-sized data frames
|
Perl
技术笔记:samtools统计重测序数据深度depth、depth
技术笔记:samtools统计重测序数据深度depth、depth
711 0
|
机器学习/深度学习 资源调度 算法
主动学习(Active Learning)简介综述汇总以及主流技术方案
3.主动学习(Active Learning)简介综述汇总以及主流技术方案
主动学习(Active Learning)简介综述汇总以及主流技术方案
|
存储 前端开发 数据可视化
网上图书销售网站的设计与实现(论文+源码)_kaic
网上图书销售网站的设计与实现(论文+源码)_kaic
vue3学习记录(1)
随着vue3的普及我们团队开始全面接纳了vue3。
1101 154