生信喵 发表于 2021-11-11 11:23:21

为什么我的火山图不好看?

本帖最后由 生信喵 于 2021-11-11 11:51 编辑

可视化第二弹,作图专题呢,没有看到大家的索图评论,就随缘更新吧:lol此次带来的是带标签的火山图,众所周知我们在差异分析后会得到logFC和P值的表格,继而就是经典的火山图了。那么如何做出一张好看的火山图呢?
好看:颜色顺眼 + 重点突出。颜色众口难调,重点就是你想要聚焦的哪些基因咯,如何把他们标注在图上呢?
简单的推导过程得出公式:好看的火山图=标注基因
好的,目的明确,下面开始主线内容:library(ggplot2)
library(ggthemes)#载入R包df <- read.table('all.txt',sep = '\t',header = T)#读入实例数据
df$change = ifelse(df$fdr < 0.05,ifelse(df$logFC > 0 ,'Up','Down'),'Stable')#指定分组
df$v <- -log10(df$fdr)#对fdr值做-log10转换
这是示例数据格式。文末也会分享给大家联系。eg <- df#对数据排序
for_label <- eg#选取要标注的top10,也可以自己指定基因的数据ggplot(data = df,aes(x = logFC,y = v)) + #读入数据,指定xy轴
geom_point(alpha=1, size=1,aes(color=change)) + #画点
scale_color_manual(values=c("#4DBBD5", "grey","#E64B35"))+ #设定颜色,顺序为分组首字母的排序
geom_vline(xintercept=0,lty=4,col="black",lwd=0.8) + #画虚线
geom_hline(yintercept = -log10(0.05),lty=4,col="black",lwd=0.8) + #画虚线
theme_few() + #ggtheme的主题之一
labs(y="-log10(FDR)") + #设置y轴标题
geom_point(size = 3, shape = 1, data = for_label) + #画标注点的外圈
ggrepel::geom_label_repel(aes(label = gene),data = for_label,color="black") #画标注点的文本最后就是结果展示了,好看你就拿走吧,学习的同时别忘了分享此文章出去哦,这也是更新的动力来源啦!

生信喵 发表于 2021-11-11 11:44:56

本帖最后由 生信喵 于 2021-11-11 12:05 编辑

代码中需要用到的输入数据:差异的结果(我瞎编的数据啦)。获取示例数据请在公众号"生信喵实验柴"后台回复“20211111”。

sys尤君 发表于 2022-10-11 09:22:32

点开之前:能有多好看,╭(╯^╰)╮
点开之后:跪谢大佬!代码抱走了!
页: [1]
查看完整版本: 为什么我的火山图不好看?