您的位置 首页 科技

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

今天我们学做一下NC文章的小提琴图,有小提琴图,也有散点,其实看过之前系列文章的人如果能够联想,可以想到这个图是(ggplot分组散点图-坐标轴截断-添加四分位图-显著性检验)和(…

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

image.png
image.png

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

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

作图:

读入数据

setwd("D:/KS项目/复现NC")
A 

计算平均值、sd等:

library(dplyr)
B % 
  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函数可以加上。

免责声明:本站刊发内容仅供读者了解,不作消费等行为依据。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

我国自主研发的大型双发无人运输机在自贡首飞成功

我国自主研发的大型双发无人运输机在自贡首飞成功

  11日上午,我国自主研发的大型双发无人运输机在四川自贡凤鸣通航机场进行了首次飞行试验,首飞取得圆满成功。   首次飞...
汇聚数字智慧 构建新质未来——《CMG数字中国》融媒体节目正式上线

汇聚数字智慧 构建新质未来——《CMG数字中国》融媒体节目正式上线

7月25日,由中央广播电视总台上海总站、央视频和数创未来(上海)传媒科技有限公司联合打造的《CMG数字中国》融媒体节目正...

“幻享未来”优秀科幻作品征集活动获奖者:期待更多优秀科幻作品从成都破土而出

近日,第81届世界科幻大会在成都闭幕,闭幕式上,“幻享未来”优秀科幻作品征集活动获奖名单揭晓,与会嘉宾共同见证了文学、艺...

“数智泸州,创享未来”2023年华为川藏政企泸州合作伙伴交流会圆满举行

当下,行业数字化、智能化正进入爆发期,以云、AI、5G等为代表的创新技术将赋能千行百业。为了更好地应对挑战,迎接变局,华...

“开放麒麟1.0”发布!我国首个开源桌面操作系统来了→

7月5日上午,我国首个开源桌面操作系统“开放麒麟1.0”正式发布,标志着我国拥有了操作系统组件自主选型、操作系统独立构建...
返回顶部