火山图绘制

绘制好看的火山图
现在有很多软件都可以画火山图,比如说生信人推出的小工具等,很多画图的小工具现在画的火山图也比较号看了,但是个人还是喜欢用R语言画图。我觉得R语言画的图可调整性大,主观意识更强。很多在线的软件画出的图都是作者根据他们自己的感觉排版的,但是R语言不同。下面我以生信人小工具和R语言绘制的火山图为例,简单叙述一下,如何绘制火山图。
这里我不详细介绍如何用生信人小工具画图,有想了解的 自行利用下面的网址下载和安装该软件https://shengxin.ren/article/222。使用该软件设置如下:

用生信人小工具绘制的火山图所有可以设置的都已标注出来了。如果需要增加一些新的设置,恐怕也就只能用PS或者AI修改了。
现在我以R语言为例,画出如下的图需要怎么做?

#设置工作路径

setwd("")
#如果安装过了ggplot2包,请忽略此步
install.packages(“ggplot2”)
library("ggplot2")          

#导入文件

k<-read.csv("mRNA.csv",header=T)  

文件格式
该文件为差异基因表达分析的结果文件
在这里插入图片描述

#分别取up,down 和None 子集

k_up<-subset(k,PValue<0.05 & logFC>1)
k_down<-subset(k,PValue<0.05 & logFC< -1)
k_none<-subset(k,PValue>0.05 | (logFC < 1 &logFC > -1))

#计算up和down 的基因个数,并设置图例显示的名称

up<-dim(k_up)[1]
down<-dim(k_down)[1]
none_diff<- dim(k_none)[1]
total<-up+down
uplable=paste("Up :",up)
downlable=paste("Down :",down)
none_diff_lable=paste("No Change:",none_diff)

#在文件最后加一列,分别表示up,down 和False 的个数

k_up$sig<-uplable
k_down$sig<-downlable
k_none$sig<-none_diff_lable
k<-rbind(k_up,k_down,k_none)
logPValue= -log10(k$PValue)

开始绘图

p <- ggplot(k)+geom_point(aes(x=logFC,y=logPValue,color=sig),size=0.8)

p <- p + ggtitle(paste(""))+xlab("log2(FC)")+ylab("-log10(PValue)")+expand_limits(x=c(-10,10))
p<-p+scale_color_manual(paste("DEGs","(",total,")"),values=c("green","grey","red"))
p<-p+geom_hline(yintercept=-log10(0.05),linetype="dotdash",size=0.4)+geom_vline(xintercept=c(-1,1),linetype="dotdash",size=0.4)
p

在这里插入图片描述
#ggtitle为该图的标题(可自行设置)
#xlab为x轴的标题
#ylab为y轴的标题
#expand_limits为x轴的范围

scale_color_manual设置了图例的标题和相应分组的颜色

geom_hline和geom_vline设置两条垂直线,设置类型为dotdash(虚线),size线条的粗细。

绘制到这里基本图形已经出来了,后面我做了一个微调,这里我不介绍,有兴趣的可以查看帮助文档
#调整图形使其更加美观

p+theme(panel.border=element_rect(fill=NA,colour="black"),plot.title = element_text(hjust = 0.5),
         panel.background = element_rect(fill = "transparent",colour ="gray"),
         plot.background = element_rect(fill  = "transparent",colour ="gray"))
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190602224636765.?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk0OTI0Ng==,size_16,color_FFFFFF,t_70)

panel.border 图片周围的边框

plot.title 标题文本的外观

panel.background 绘图区域背景

plot.background 图形的背景

详细可见ggplot2包theme的帮助文档,在窗口输入?theme即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值