复现《nature communications》散点小提琴图加蜜蜂图

今天我们学做一下NC文章的小提琴图,有小提琴图,也有散点,其实看过之前系列文章的人如果能够联想,可以想到这个图是(ggplot分组散点图-坐标轴截断-添加四分位图-显著性检验)和(ggplot批量绘制小提琴图并添加趋势连线)的结合。只不过这篇文章的图有个特点是散点分布和小提琴图形状一致,在画散点的时候利用geom_quasirandom 代替geom_jitter即可。

image.png

image.png

原文提供了原始作图数据,可去官网下载。

示例数据和注释代码已上传群文件,免费获取可加群!

作图:

读入数据

setwd("D:/KS项目/复现NC")
A <- read.csv("Fig3f.csv", header = T)
A$Integrated.density <- 0.001*A$Integrated.density

library(ggplot2)
library(ggbeeswarm)
library(ggpubr)
A$Biological.replicate <- as.factor(A$Biological.replicate)

计算平均值、sd等:

library(dplyr)
B <- A %>% 
  group_by(Treatment) %>% 
  mutate(upper =  quantile(Integrated.density, 0.75),
         lower = quantile(Integrated.density, 0.25),
         mean = mean(Integrated.density),
         median = median(Integrated.density),
         sd = sd(Integrated.density))

ggplot作图:

ggplot(A,aes(x=Treatment,y=Integrated.density))+
  geom_violin(width =0.8,fill='#EDEDED',color='#EDEDED')+
  geom_quasirandom(aes(color=Biological.replicate),width = 0.4,size=2.5)+
  scale_color_manual(name = 'Rep.',
                     values = c('#FFD7A8','#F2A9A9','#BAB099'),
                     labels = c('1','2','3'))+ 
  theme_classic()+
  labs(x=" ",
       y=expression('Integrated density (x'~10^3~')'))+ 
  theme(axis.title.y = element_text(colour = 'black',size = 16),
        axis.text = element_text(colour = 'black',size = 14),
        axis.line = element_line(size = 1),
        legend.title = element_text(size = 14),
        legend.text = element_text(size = 14))+
  guides(color=guide_legend(override.aes = list(size=4)))+
  geom_errorbar(data=B, aes(ymin = mean-sd, 
                            ymax = mean+sd),width = 0.2,size=0.5)+
  stat_summary(fun = "mean",
               geom = "crossbar",
               mapping = aes(ymin=..y..,ymax=..y..),
               width=0.4,
               size=0.3)+
  stat_summary(aes(fill=Biological.replicate), geom="point",
               fun = mean, shape=21, size=6,stroke=1.3)+
  scale_fill_manual(values = c('#FFAF51','#E65454','#756233'))+
  geom_signif(data=A,
             aes(xmin=1, xmax=2, annotations="0.3008367", 
                 y_position=310),
             textsize = 5,tip_length = c(0, 0),
             manual=TRUE, size = 0.5)+
  guides(fill=guide_legend(title = 'Mean'))

image.png

结果基本是一致的,不同之处在于误差线,我是按照mean±sd,和原文有出入。其次Mean的图例,这里没有修改,不知有啥好办法,原文只有一个圈,其实用annotate函数可以加上。

更多精彩请关注我的公众号《KS科研分享与服务》

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容概要:本教程将指导读者如何使用R语言复制一篇《美国国家科学院院刊》(PNAS)文章中的散点图。通过详细讲解和实践代码示例,读者将学习如何在R语言环境中处理数据、利用ggplot2形包绘制散点图、以及如何调整表的美学元素(如颜色、大小、形状等)以匹配原文的风格。此外,本教程还将涉及如何解读散点图中的数据关系和趋势,以及如何将这些视觉信息有效地用于科学交流和数据呈现。 适合人群:适合对R语言有基本了解,且对科学研究或数据可视化有兴趣的学生、研究人员和数据分析师。特别是那些希望提高自己在学术期刊发表物中数据呈现技巧的人员。 能学到什么: 如何在R语言中准备和处理数据以用于绘制散点图; 使用R语言中的ggplot2等包来复现学术文章中的散点图,包括形的定制化设置; 解读散点图中展示的数据关系,包括变量间的相关性、趋势和潜在模式; 提升在科学交流和数据呈现方面的技能,特别是在复现和定制高质量表方面。 阅读建议:为了最大化本教程的效益,读者应该在实际操作中跟随教程的步骤,细致地复现文章中的散点图。在此过程中,建议读者不仅关注表的外观,还要理解数据背后的科学含义和逻辑关系。此外,鼓励读者尝试使用不同的数据集和形元素,以提高自己在数据可视化方面的创新能力和技术熟练度。通过这种方式,读者可以更好地掌握如何在自己的研究和报告中有效地使用散点图来呈现复杂数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值