跟着Nature Communications学作图:R语言ggplot2气泡图组合水平柱形图完整示例
论文
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 2D 的下半部分
首先是右侧的气泡图
部分示例数据截图
读取数据并作图代码
library(readxl)
dat01<-read_excel("data/20220806/fig2d.xlsx",
sheet = "Sheet1")
library(tidyverse)
library(stringr)
dat01 %>%
pivot_longer(-var) %>%
mutate(value=replace_na(value,"B")) -> new.dat01
library(ggplot2)
ggplot(data=new.dat01,aes(x=name,y=var))+
geom_point(size=15,aes(color=value),
show.legend = FALSE)+
geom_segment(data=data.frame(x=7:11,
xend=7:11,
y=6,
yend=5:1),
aes(x=x,y=y,xend=xend,yend=yend),
color="#68c3a6",size=3)+
scale_color_manual(values = c("A"="#68c3a6",
"B"="#d3d3d3"))+
geom_rect(data = data.frame(xmin=0.5,
xmax=11.5,
ymin=c(0.5,2.5,4.5),
ymax=c(1.5,3.5,5.5)),
aes(xmin=xmin,xmax=xmax,ymin=ymin,ymax=ymax),
fill="#f6f6f6",
alpha=0.5,
inherit.aes = FALSE)+
geom_point(data=new.dat01,aes(x=name,y=var,color=value),
size=15,
show.legend = FALSE)+
geom_segment(data=data.frame(x=7:11,
xend=7:11,
y=6,
yend=5:1),
aes(x=x,y=y,xend=xend,yend=yend),
color="#68c3a6",size=3)+
theme_void() -> p1
p1
这里遇到了一个问题是 想把条状的灰色背景放到最底层,正常是把作图函数写到最前面就可以了,但是因为添加条状背景是连续数据,气泡图是离散数据,写到前面会报错,写到后面就没有这个问题,暂时不知道什么原因。这里的解决办法是有叠加了一层气泡图和线段的函数
水平柱形图的代码
部分示例数据集截图
dat02<-read_excel("data/20220806/fig2d.xlsx",
sheet = "Sheet2")
dat02
ggplot(data=dat02,aes(x=var,y=value))+
geom_hline(yintercept = 10,lty="dashed",
color="#d3d3d3")+
geom_col(fill="#68c3a6")+
geom_text(aes(label=paste0(value,"M")),hjust=1)+
coord_flip()+
scale_y_reverse(expand=expansion(mult = c(0.4,0)),
breaks=c(0,10),
labels=c(0,"10M"))+
scale_x_discrete(position = "top")+
theme_classic()+
theme(axis.line.y = element_blank(),
axis.ticks.y = element_blank())+
labs(x=NULL,y="Total size") -> p2
p2
最后是拼图代码
library(patchwork)
p2 + p1 +
plot_layout(widths = c(1,3))
背景的浅色灰色条不知道如何跨越两个图,这里是出图后编辑图片实现的
示例数据和代码可以 给公众号推文打赏一元获取
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!
共有 0 条评论