跟着Nature Communications学作图:R语言ggplot2绘制带有条纹的分组柱形图
2023-02-19 12:27:46 时间
论文
Pan-African genome demonstrates how population-specific genome graphs improve high-throughput sequencing data analysis
https://www.nature.com/articles/s41467-022-31724-3
本地pdf s41467-022-31724-3.pdf
论文中公布了大部分图的数据,但是没有公布对应的作图代码,没有关系,我们可以自己写代码试着模仿,今天的推文重复一下论文中的Figure 2A 带有条纹的分组柱形图
示例数据截图
image.png
这里实现条纹柱形图用到的是 ggpattern
这个R包
参考链接
https://coolbutuseless.github.io/package/ggpattern/index.html
https://github.com/coolbutuseless/ggpattern
安装
remotes::install_github("coolbutuseless/ggpattern")
因为是ggplot2的扩展包,除了把作图函数替换,其余的细节都可以用ggplot2的语法来调节
读取数据
library(readxl)
dffig2a<-read_excel("data/20220806/41467_2022_31724_MOESM4_ESM.xlsx",
sheet = "figure 2a")
dffig2a
library(tidyverse)
dffig2a %>%
pivot_longer(-'Super-population') -> new.dffig2a
作图代码
library(ggplot2)
cols<-c("#ffa657","#fd8011","#6cbe6c","#349734",
"#eba0d5","#da7dbd","#63a0cb","#1f7ab4",
"#d0d166","#bbbe21")
ggplot(data = new.dffig2a,aes(x=`Super-population`,y=value))+
geom_bar_pattern(stat="identity",
position = "dodge",
aes(pattern=name,
fill=name),
pattern_density=0.01,
fill=cols,
color="black",
show.legend = FALSE)+
scale_pattern_manual(values = c('Divergence'='stripe',
'Diversity'="none"))+
scale_y_continuous(expand = expansion(mult = c(0,0.1)),
labels = scales::percent,
limits = c(0,0.25/100),
breaks = seq(0,0.25/100,by=0.05/100))+
labs(x=NULL,y=NULL)+
theme_classic()+
theme(axis.line.y = element_blank(),
axis.ticks.y = element_blank(),
panel.grid = element_line(linetype = "dashed"),
panel.grid.major = element_line(),
panel.grid.minor = element_blank()) -> p1
p1
ggplot()+
geom_rect_pattern(data=data.frame(x=1,xend=2,y=1,yend=2),
aes(xmin=x,ymin=y,xmax=xend,ymax=yend),
pattern_density=1,
fill="white",
color="black")+
geom_rect_pattern(data=data.frame(x=1,xend=2,y=2.5,yend=3.5),
aes(xmin=x,ymin=y,xmax=xend,ymax=yend),
pattern="none",
pattern_density=1,
fill="grey",
color="black")+
theme_void()+
geom_text(data=data.frame(x=2,y=1.5),
aes(x=x,y=y),label="Divergence",
hjust=-0.1)+
geom_text(data=data.frame(x=2,y=3),
aes(x=x,y=y),label="Diversity",
hjust=-0.1)+
xlim(1,4) -> p2
p1+
annotation_custom(grob = ggplotGrob(p2),
xmin = 4,xmax = Inf,
ymin = 0.2/100,ymax=0.25/100) -> p3
p3
library(patchwork)
p3+p3
image.png
示例数据可以在论文中去下载,代码直接在推文中复制
相关文章
- 嵌入式:AD接口设计
- 使用KVM创建OEL虚拟机
- 【Qbot】5.接入DALL·E图像生成/Disco Diffusion本地部署
- SAP UI5 Fiori 应用在启动时向 ABAP 后台发起的 OData 请求序列的顺序和作用分析
- devexpress中基础控件教程 从Button到TabControl
- 图扑软件 | 数字孪生钢厂人员安全定位
- VMware Workstation安装ESXI8.0
- 产业互联网,虚拟经济与实体经济互为「赋能体」
- golang 简单连接池
- AI 实战篇 |基于 AI开放平台实现 【货币识别】 功能,彻底解决货币盲区
- 客服弹窗中使用layer库自定义展示的标题 - 网站/网页在线客服源码教程
- 我是真没想到,这个面试题居然从11年前就开始讨论了,而官方今年才表态。
- Portraiture4插件下载百度云2023最新版本
- 整体学历较高,硕士占比达 40%,周星驰也开始招募Web3人才!
- 凯文.凯利:未来12个趋势(值得一读)
- Acrobat Reader DC 2020软件免费下载及安装教程PDF编辑器全版本下载
- AI排名第一,南大首届毕业生现状
- PDF编辑器——Adobe Acrobat X Pro下载安装pdf编辑器全版本下载
- 好用的PDF编辑器,仅此一家!PDF编辑器全版本下载
- Adobe Acrobat Pro DC PDF编辑器全版本下载