热点新闻
跟着Nature Communications学作图:R语言ggplot2气泡图组合水平柱形图完整示例
2023-07-27 16:04  浏览:738  搜索引擎搜索“富博农业网”
温馨提示:为防找不到此信息,请务必收藏信息以备急用! 联系我时,请说明是在富博农业网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

论文

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 的下半部分




image.png

首先是右侧的气泡图

部分示例数据截图




image.png

读取数据并作图代码

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


image.png

这里遇到了一个问题是 想把条状的灰色背景放到最底层,正常是把作图函数写到最前面就可以了,但是因为添加条状背景是连续数据,气泡图是离散数据,写到前面会报错,写到后面就没有这个问题,暂时不知道什么原因。这里的解决办法是有叠加了一层气泡图和线段的函数

水平柱形图的代码

部分示例数据集截图




image.png

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


image.png

最后是拼图代码

library(patchwork) p2 + p1 + plot_layout(widths = c(1,3))


image.png

背景的浅色灰色条不知道如何跨越两个图,这里是出图后编辑图片实现的

示例数据和代码可以 给公众号推文打赏一元获取

欢迎大家关注我的公众号

小明的数据分析笔记本

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

发布人:cfd1****    IP:61.145.64.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发