跟着Nature Plants学作图:R语言ggplot2画变种火山图
语言 Nature ggplot2 跟着 作图 火山 变种
2023-06-13 09:16:32 时间
论文
The flying spider-monkey tree fern genome provides insights into fern evolution and arborescence
https://www.nature.com/articles/s41477-022-01146-6#Sec44
数据下载链接
https://doi.org/10.6084/m9.figshare.19125641
今天的推文重复一下论文中的Extended Data Fig. 3 c
image.png
他这个图的数据是怎么算出来的我还有点搞不明白,它的图注的内容也没有看明白
Gene pairs plotted according to log2 fold change (L2F) as calculated for gene 1 (x-axis) and gene 2 (y-axis) in DESeq2. Each point represents one gene pair with pairs colored according to the difference in L2F values (diffL2F = |L2F_1 - L2F_2|) to visualize the arbitrary cutoffs of diffL2F = 2 and diffL2F = 4.
部分示例数据如下
image.png
作图数据是 L2F_1 和 L2F_2 两列,还需要根据L2F_diff的取值增加一列映射颜色
首先是读取数据
library(readxl)
dat01<-read_excel("data/20220529/20220529.xlsx")
head(dat01)
增加一列映射颜色
library(tidyverse)
dat01 %>%
mutate(diffL2F=case_when(
L2F_diff < 2 ~ "<2",
L2F_diff >=2 & L2F_diff<=4 ~ ">2",
TRUE ~ ">4"
)) -> dat01.1
作图代码
library(ggplot2)
ggplot(data=dat01.1,aes(x=L2F_1,y=L2F_2))+
geom_point(aes(color=diffL2F))+
scale_color_manual(values = c("<2"="#7f7f7f",
">2"="#fe0904",
">4"='#f9b54f'))+
geom_abline(intercept = 0,slope = 1,
lty="dashed",size=1,
color="blue")
image.png
论文中有六组数据,批量读入,批量作图
批量读取excel
library(tidyverse)
library(readxl)
list.files("data/20220529/",
pattern = "*.xlsx",
full.names = TRUE) %>%
map(.,read_excel) -> dat.list
批量作图
library(ggplot2)
plot.list = list()
text.label<-c("StGa","SoGa","LeGa","StSo","SoLe","LeSt")
for (i in 1:6){
dat.list[[i]] %>%
mutate(diffL2F=case_when(
L2F_diff < 2 ~ "<2",
L2F_diff >=2 & L2F_diff<=4 ~ ">2",
TRUE ~ ">4"
)) %>%
ggplot(aes(x=L2F_1,y=L2F_2))+
geom_point(aes(color=diffL2F))+
scale_color_manual(values = c("<2"="#7f7f7f",
">2"="#fe0904",
">4"='#f9b54f'))+
geom_abline(intercept = 0,slope = 1,
lty="dashed",size=1,
color="blue")+
geom_text(aes(x=-Inf,y=Inf),
hjust=-0.5,vjust=2,
label=text.label[i])+
labs(x=NULL,y=NULL) -> plot.list[[i]]
}
将六个图拼接到一起
wrap_plots(plot.list,ncol=3,nrow=2,byrow = TRUE)+
plot_layout(guides = "collect") -> p1
p1
image.png
修改整体的边界空白
p1 +
plot_annotation(theme =
theme(plot.margin = unit(c(0.2,0.2,1.2,1.2),'cm')))
添加坐标轴标题
grid::grid.draw(grid::textGrob("Log2(fold change)\ngene1", x = 0.04, rot = 90))
grid::grid.draw(grid::textGrob("Log2(fold change)\ngene2", y = 0.04))
image.png
示例数据可以到论文中去下载,代码可以直接在推文中复制
相关文章
- 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第六章 使用c语言操作dsp寄存器(以SCI为例进行说明))
- 跟着Nature Communication学作图:R语言ggpubr包画箱线图并添加显著性P值
- 跟着Nature Communication学作图:R语言ggplot2话点线图展示基因表达量的范围
- 跟着Nature Communications学作图:R语言UpSetR画图展示不同组数据之间的交集
- 跟着Nature Ecology&Evolution学作图:R语言ggmsa包展示多序列比对结果
- 跟着Nature学作图:R语言ggplot2簇状柱形图完整示例
- 跟着Nature Genetics学作图:R语言ggplot2散点图突出强调其中某些点
- 跟着Nature学作图:R语言ggplot2分组折线图完整实例/多个图例分开放
- 跟着Nature学作图:R语言ggplot2散点图和添加辅助线完整示例
- 跟着Nature学作图:R语言ggplot2箱线图/堆积柱形图完整示例
- 跟着Nature学作图:R语言ggplot2频率分布直方图/堆积柱形图/散点图
- 跟着Nature Plants学数据分析:R语言WGCNA分析完整示例
- 跟着Nature Communications学作图:R语言ggplot2散点图及添加文字标签
- 跟着Nature Communications学作图:R语言ggplot2热图(heatmap)并添加文字标签
- 跟着Nature Communications学作图:R语言ggplot2画世界地图并用md语法添加文字标签
- 跟着Nature Communications学作图:R语言ggplot2画图展示捐赠者的临床概况
- 跟着Nature学作图:R语言ggplot2分组折线图完整示例(Extended Fig2)
- 跟着Nature Biotechnology学作图:R语言pca分析并使用ggplot2可视化结果
- 跟着Nature Communications学作图:R语言ggplot2散点加误差线展示响应比(Response ratio)
- 跟着Nature学作图:R语言ggplot2频率分布直方图和散点图添加误差线
- 跟着Nature Communications学作图:R语言ggplot2做堆积柱形图展示群体基因组学的结果
- R语言入门-01:数据框
- 语言操作Go语言操作MySQL开发高效应用(mysqlgo)