前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么我的火山图不好看?

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

作者头像
生信喵实验柴
发布2021-12-15 11:19:47
7670
发布2021-12-15 11:19:47
举报
文章被收录于专栏:生信喵实验柴

可视化第二弹,作图专题呢,没有看到大家的索图评论,就随缘更新吧

此次带来的是带标签的火山图,众所周知我们在差异分析后会得到logFC和P值的表格,继而就是经典的火山图了。那么如何做出一张好看的火山图呢?

好看:颜色顺眼 + 重点突出。颜色众口难调,重点就是你想要聚焦的哪些基因咯!

简单的推导过程得出公式:好看的火山图=标注基因,如何把他们标注在图上呢?

好的,目的明确,下面开始主线内容:

代码语言:javascript
复制
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转换

这是示例数据格式。

代码语言:javascript
复制
eg <- df[order(abs(df$logFC)),]#对数据排序
for_label <- eg[88:97,]#选取要标注的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,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信喵实验柴 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档