火山图 volcano

R绘图:ggplot2绘制火山图
ggplot去除网格线

一、数据集准备

数据集主要用到的就是log2foldchangepvalue/padj

二、画图

library(ggplot2)

k_DIPG17_2_1_merge_2vs1_25 <- read.csv("DIPG17_2_1_merge_2vs1_25.csv")
DIPG17_2_1_merge_2vs1_25_up<-subset(k_DIPG17_2_1_merge_2vs1_25,pvalue<0.05 & log2FoldChange >1)
DIPG17_2_1_merge_2vs1_25_down<-subset(k_DIPG17_2_1_merge_2vs1_25,pvalue<0.05 & log2FoldChange < -1)
DIPG17_2_1_merge_2vs1_25_none<-subset(k_DIPG17_2_1_merge_2vs1_25,pvalue>0.05 | (log2FoldChange< 1 &log2FoldChange> -1))

up_2vs1_25<-dim(DIPG17_2_1_merge_2vs1_25_up)[1]
down_2vs1_25<-dim(DIPG17_2_1_merge_2vs1_25_down)[1]
none_diff_2vs1_25<- dim(DIPG17_2_1_merge_2vs1_25_none)[1]
total<-up_2vs1_25+down_2vs1_25


uplable=paste("Up :",up_2vs1_25)
downlable=paste("Down :",down_2vs1_25)
none_diff_lable=paste("No Change:",none_diff_2vs1_25)

DIPG17_2_1_merge_2vs1_25_up$sig<-uplable
DIPG17_2_1_merge_2vs1_25_down$sig<-downlable
DIPG17_2_1_merge_2vs1_25_none$sig<-none_diff_lable
k_DIPG17_2_1_merge_2vs1_25<-rbind(DIPG17_2_1_merge_2vs1_25_up,DIPG17_2_1_merge_2vs1_25_down,DIPG17_2_1_merge_2vs1_25_none)
logpadj= -log10(k_DIPG17_2_1_merge_2vs1_25$padj)

p <- ggplot(k_DIPG17_2_1_merge_2vs1_25)+geom_point(aes(x=log2FoldChange,y=logpadj,color=sig),size=0.8)
p <- p + ggtitle(paste(""))+xlab("log2FoldChange")+ylab("-log(padj)")+expand_limits(x=c(-10,10))
p<-p+scale_color_manual(values=c("blue","grey","red"))
p


得到火山图
在这里插入图片描述

添加标签的

数据格式
在这里插入图片描述

p <- ggplot(data = DESeq_sample_WTvsA2KO_p0.05_label, aes(x = log2FoldChange, y = -log10(pvalue), colour=sig,label = SYMBOL)) +
  geom_point(alpha=0.4, size=2.5) +
  scale_color_manual(values=c("blue", "grey","red")) +
  xlim(c(-8, 8))+geom_vline(xintercept=c(-0.5,0.5),lty=4,col="black",lwd=0.8)+geom_text_repel(
    data = subset(DESeq_sample_WTvsA2KO_p0.05_label, DESeq_sample_WTvsA2KO_p0.05_label$pvalue < 0.001 & abs(DESeq_sample_WTvsA2KO_p0.05_label$log2FoldChange) >= 3),
    aes(label = SYMBOL),
    size = 3,
    box.padding = unit(0.5, "lines"),
    point.padding = unit(0.8, "lines"), segment.color = "black", show.legend = FALSE )+labs(x="log2(fold change)",y="-log10 (p-value)",color = NULL)#color-NULL可以去掉legend名称 +
  theme(plot.title = element_text(hjust = 1), legend.position="left", legend.title = NULL)
p <- p+theme_bw() 
  #theme(panel.grid=element_blank())#去背景和网格线  
p
  

如果出现以下错误:

Error in grid.Call(C_convert, x, as.integer(whatfrom), as.integer(whatto),  : 
  Viewport has zero dimension(s)

那么把画图框拉大即可
参考
【R ·我的报错日常】Error in grid.Call(C_convert, x, as.integer(whatfrom), as.integer(whatto), : Viewport ha

diffexpr_results <- read.csv("diffexpr-results.csv")
diffexpr_results$change = ifelse(diffexpr_results$padj < 0.05 & abs(diffexpr_results$log2FoldChange) >= 0.5, 
                        ifelse(diffexpr_results$log2FoldChange>0.5 ,'Up','Down'),
                        'Stable')
head(diffexpr_results)
p <- ggplot(
  # 数据、映射、颜色
  diffexpr_results, aes(x = log2FoldChange, y = -log10(padj), colour=change)) +
  geom_point(alpha=0.4, size=3.5) +
  scale_color_manual(values=c("blue", "grey","red"))+
  # 辅助线
  geom_vline(xintercept=c(-1,1),lty=4,col="black",lwd=0.8) +
  geom_hline(yintercept = -log10(0.05),lty=4,col="black",lwd=0.8) +
  # 坐标轴
  labs(x="log2(fold change)",
       y="-log10 (padj)")+
  theme_bw()+
  # 图例
  theme(plot.title = element_text(hjust = 0.5), 
        legend.position="right", 
        legend.title = element_blank())
p

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值