跟着Nature Genetics 学画图:R语言ggplot2画箱线图(boxplot)展示D statistic

今天推文重复的图来自于 论文
Whole-genome resequencing of 445 Lactuca accessions reveals the domestication history of cultivated lettuce

image.png

这篇论文的数据是公开的,代码也公开了一部分,那我们就可以按照他的提供的数据来试着复原一些论文中的图了。
本来已经重复到了论文中Fig1的2c,但是试着做局部放大的时候遇到了一些问题,暂时还搞不定,看了其他的图实现起来还有一定的难度。所以先挑一个相对比较简单的箱线图来模仿一下吧。 对应的是论文中的Figure 2d

image.png

数据是论文附件的 Source Data Fig.2

image.png
首先是读入数据
df<-readxl::read_excel("NG/41588_2021_831_MOESM5_ESM.xlsx",
                      sheet="Fig2d")

论文中提供的是宽格式数据,如果使用ggplot2作图需要转换成长格式,这里本来想尝试一下tidyr包中的pivot_longer()函数了,帮助文档没有看明白。没有搞定,还是直接使用reshape2中的melt()函数吧

library(dplyr)
df %>% 
  mutate(new_col=paste(Group1,Group2,sep="_")) %>% 
  select(-c("Group1","Group2","Group3","Outgroup")) %>% 
  #reshape2::melt(var.ids=c("Group1")) %>% 
  #arrange(Group1,Group2) %>% 
  reshape2::melt(var.ids="new_col") -> df1

head(df1)
ggplot2 作图
library(ggplot2)
library(stringr)
library(ggprism)
x_level<-paste(df$Group1,df$Group2,sep="_")
x_level
df1$group<-str_sub(df1$new_col,5,7)
df1$new_col<-factor(df1$new_col,
                    levels = x_level)
ggplot(df1,aes(x=new_col,y=value))+
  stat_boxplot(geom = "errorbar",width=0.2)+
  geom_boxplot(outlier.shape = 1,
               aes(fill=group),
               show.legend = F)+
  scale_fill_manual(values = c("#e64b35",
                               "#4daf4a",
                               "#4dbbd5",
                               "#cab2d6",
                               "#b2df8a"))+
  scale_x_discrete(labels=str_sub(x_level,1,3),
                   guide = "prism_offset")+
  scale_y_continuous(limits = c(-0.021,0.085),
                     breaks = seq(-0.02,0.08,by=0.02))+
  theme_prism(axis_text_angle = 90,
              base_line_size = 0.1,
              base_fontface = "plain",
              base_family = "serif")+
  labs(x=NULL,
       y=expression(paste(italic("D")," statistic")))+
  theme(plot.margin = unit(c(0.2,0.2,2,0.2),'cm'))+
  
  geom_segment(x=1,xend=5,y=-0.04,yend=-0.04)+
  annotate("text",x=3,y=-0.02,label="CAU",vjust=10)+
  geom_segment(x=6,xend=9,y=-0.04,yend=-0.04)+
  annotate("text",x=7.5,y=-0.02,label="SEU",vjust=10)+
  geom_segment(x=10,xend=12,y=-0.04,yend=-0.04)+
  annotate("text",x=11.5,y=-0.02,label="WEU",vjust=10)+
  geom_segment(x=13,xend=14,y=-0.04,yend=-0.04)+
  annotate("text",x=13.5,y=-0.02,label="EEU",vjust=10)+
  geom_segment(x=14.5,xend=15.5,y=-0.04,yend=-0.04)+
  annotate("text",x=15,y=-0.02,label="WAS",vjust=10)+
  annotate("text",x=1,y=-0.02,label="P1",
           hjust=2,vjust=5)+
  annotate("text",x=1,y=-0.02,label="P2",
           hjust=2,vjust=10)+
  coord_cartesian(clip = "off")
image.png

箭头指的地方如何用代码缩短暂时不知道了,出图收手动调整吧

最终结果

image.png

这里遇到的问题是

  • 如何将箱线图的垂直线改成虚线呢?

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容